Example #1
0
 public function checkConnect()
 {
     $this->initDiscuzApi();
     try {
         uc_app_ls();
         return true;
     } catch (\Exception $e) {
         return false;
     }
 }
Example #2
0
function updatesettingcache()
{
    global $_G, $_SGLOBAL, $_SSCONFIG, $lang;
    $_SSCONFIG = array();
    $query = DB::query('SELECT * FROM ' . tname('settings'));
    while ($set = DB::fetch($query)) {
        $_G['setting'][$set['variable']] = $set['value'];
    }
    // 附件設置
    $_G['setting']['attach'] = unserialize($_G['setting']['attach']);
    $_G['setting']['attachmenturlarr'] = explode("\r\n", trim($_G['setting']['attachmenturls']));
    //縮略圖設置
    if (empty($_G['setting']['thumbarray'])) {
        $_G['setting']['thumbarray'] = array('news' => array('400', '300'));
    } else {
        $_G['setting']['thumbarray'] = unserialize($_G['setting']['thumbarray']);
    }
    //讀取UC中論壇地址
    require_once B_ROOT . './uc_client/client.php';
    $ucapparray = uc_app_ls();
    if (count($ucapparray) > 0) {
        foreach ($ucapparray as $apparray) {
            if ($apparray['type'] == 'DISCUZ') {
                $_G['setting']['discuz_url'] = $apparray['url'];
                break;
            }
        }
    }
    // 讀取導航
    $query = DB::query('SELECT name,flag,url,target,highlight FROM ' . tname('nav') . ' WHERE (type=\'sys\' or type=\'site\') and shopid=0 and available=1 order by displayorder limit 7');
    while ($value = DB::fetch($query)) {
        $value['ext'] = ($value['target'] == 1 ? ' target=\'_blank\'' : '') . ' style=\'' . pktitlestyle($value['highlight']) . '\'';
        $_G['setting']['site_nav'][$value['flag']] = $value;
    }
    // 會員卡商家導航
    if (empty($_G['setting']['enablecard'])) {
        unset($_G['setting']['site_nav']['card']);
    }
    // make cache
    $cachefile = B_ROOT . './data/system/config.cache.php';
    $cachetext = '$_G[\'setting\'] = ' . arrayeval($_G['setting']);
    writefile($cachefile, $cachetext, 'php');
}
Example #3
0
function build_cache_setting()
{
    global $_G;
    $table = 'common_setting';
    $skipkeys = array('posttableids', 'siteuniqueid', 'mastermobile', 'closedreason', 'creditsnotify', 'backupdir', 'custombackup', 'jswizard', 'maxonlines', 'modreasons', 'newsletter', 'postno', 'postnocustom', 'customauthorinfo', 'domainwhitelist', 'ipregctrl', 'ipverifywhite', 'fastsmiley', 'defaultdoing', 'profilegroup');
    $serialized = array('reginput', 'memory', 'search', 'creditspolicy', 'ftp', 'secqaa', 'ec_credit', 'qihoo', 'spacedata', 'infosidestatus', 'uc', 'indexhot', 'relatedtag', 'sitemessage', 'uchome', 'heatthread', 'recommendthread', 'disallowfloat', 'allowviewuserthread', 'advtype', 'click', 'card', 'rewritestatus', 'rewriterule', 'privacy', 'focus', 'forumkeys', 'article_tags', 'verify', 'seotitle', 'seodescription', 'seokeywords', 'domain', 'ranklist', 'seccodedata', 'inviteconfig', 'advexpiration', 'allowpostcomment', 'mobile', 'connect');
    $data = array();
    $query = DB::query("SELECT * FROM " . DB::table($table) . " WHERE skey NOT IN(" . dimplode($skipkeys) . ')');
    while ($setting = DB::fetch($query)) {
        if ($setting['skey'] == 'extcredits') {
            if (is_array($setting['svalue'] = unserialize($setting['svalue']))) {
                foreach ($setting['svalue'] as $key => $value) {
                    if ($value['available']) {
                        unset($setting['svalue'][$key]['available']);
                    } else {
                        unset($setting['svalue'][$key]);
                    }
                }
            }
        } elseif ($setting['skey'] == 'creditsformula') {
            if (!checkformulacredits($setting['svalue'])) {
                $setting['svalue'] = '$member[\'extcredits1\']';
            } else {
                $setting['svalue'] = preg_replace("/(friends|doings|blogs|albums|polls|sharings|digestposts|posts|threads|oltime|extcredits[1-8])/", "\$member['\\1']", $setting['svalue']);
            }
        } elseif ($setting['skey'] == 'maxsmilies') {
            $setting['svalue'] = $setting['svalue'] <= 0 ? -1 : $setting['svalue'];
        } elseif ($setting['skey'] == 'threadsticky') {
            $setting['svalue'] = explode(',', $setting['svalue']);
        } elseif ($setting['skey'] == 'attachdir') {
            $setting['svalue'] = preg_replace("/\\.asp|\\0/i", '0', $setting['svalue']);
            $setting['svalue'] = str_replace('\\', '/', substr($setting['svalue'], 0, 2) == './' ? DISCUZ_ROOT . $setting['svalue'] : $setting['svalue']);
            $setting['svalue'] .= substr($setting['svalue'], -1, 1) != '/' ? '/' : '';
        } elseif ($setting['skey'] == 'attachurl') {
            $setting['svalue'] .= substr($setting['svalue'], -1, 1) != '/' ? '/' : '';
        } elseif ($setting['skey'] == 'onlinehold') {
            $setting['svalue'] = $setting['svalue'] * 60;
        } elseif (in_array($setting['skey'], $serialized)) {
            $setting['svalue'] = @unserialize($setting['svalue']);
            if ($setting['skey'] == 'search') {
                foreach ($setting['svalue'] as $key => $val) {
                    foreach ($val as $k => $v) {
                        $setting['svalue'][$key][$k] = max(0, intval($v));
                    }
                }
            }
            if ($setting['skey'] == 'ftp') {
                $setting['svalue']['attachurl'] .= substr($setting['svalue']['attachurl'], -1, 1) != '/' ? '/' : '';
            }
        }
        $_G['setting'][$setting['skey']] = $data[$setting['skey']] = $setting['svalue'];
    }
    DB::free_result($query);
    $data['newusergroupid'] = DB::result_first("SELECT groupid FROM " . DB::table('common_usergroup') . " WHERE creditshigher<=" . intval($data['initcredits']) . " AND " . intval($data['initcredits']) . "<creditslower LIMIT 1");
    if ($data['srchhotkeywords']) {
        $data['srchhotkeywords'] = explode("\n", $data['srchhotkeywords']);
    }
    if ($data['search']) {
        $searchstatus = 0;
        foreach ($data['search'] as $item) {
            if ($item['status']) {
                $searchstatus = 1;
                break;
            }
        }
        if (!$searchstatus) {
            $data['search'] = array();
        }
    }
    $data['creditspolicy'] = array_merge($data['creditspolicy'], get_cachedata_setting_creditspolicy());
    if ($data['heatthread']['iconlevels']) {
        $data['heatthread']['iconlevels'] = explode(',', $data['heatthread']['iconlevels']);
        arsort($data['heatthread']['iconlevels']);
    } else {
        $data['heatthread']['iconlevels'] = array();
    }
    if ($data['verify']) {
        foreach ($data['verify'] as $key => $value) {
            if ($value['available'] && !empty($value['icon'])) {
                $icourl = parse_url($value['icon']);
                if (!$icourl['host'] && !file_exists($value['icon'])) {
                    $data['verify'][$key]['icon'] = $data['attachurl'] . 'common/' . $value['icon'];
                }
            }
        }
    }
    if ($data['recommendthread']['status']) {
        if ($data['recommendthread']['iconlevels']) {
            $data['recommendthread']['iconlevels'] = explode(',', $data['recommendthread']['iconlevels']);
            arsort($data['recommendthread']['iconlevels']);
        } else {
            $data['recommendthread']['iconlevels'] = array();
        }
    } else {
        $data['recommendthread'] = array('allow' => 0);
    }
    if ($data['commentnumber'] && !$data['allowpostcomment']) {
        $data['commentnumber'] = 0;
    }
    if (!empty($data['ftp'])) {
        if (!empty($data['ftp']['allowedexts'])) {
            $data['ftp']['allowedexts'] = str_replace(array("\r\n", "\r"), array("\n", "\n"), $data['ftp']['allowedexts']);
            $data['ftp']['allowedexts'] = explode("\n", strtolower($data['ftp']['allowedexts']));
            array_walk($data['ftp']['allowedexts'], 'trim');
        }
        if (!empty($data['ftp']['disallowedexts'])) {
            $data['ftp']['disallowedexts'] = str_replace(array("\r\n", "\r"), array("\n", "\n"), $data['ftp']['disallowedexts']);
            $data['ftp']['disallowedexts'] = explode("\n", strtolower($data['ftp']['disallowedexts']));
            array_walk($data['ftp']['disallowedexts'], 'trim');
        }
        $data['ftp']['connid'] = 0;
    }
    if (!empty($data['forumkeys'])) {
        $data['forumfids'] = array_flip($data['forumkeys']);
    } else {
        $data['forumfids'] = array();
    }
    $data['commentitem'] = explode("\t", $data['commentitem']);
    $commentitem = array();
    foreach ($data['commentitem'] as $k => $v) {
        $tmp = explode(chr(0) . chr(0) . chr(0), $v);
        if (count($tmp) > 1) {
            $commentitem[$tmp[0]] = $tmp[1];
        } else {
            $commentitem[$k] = $v;
        }
    }
    $data['commentitem'] = $commentitem;
    if ($data['allowviewuserthread']['allow']) {
        $data['allowviewuserthread'] = is_array($data['allowviewuserthread']['fids']) && $data['allowviewuserthread']['fids'] && !in_array('', $data['allowviewuserthread']['fids']) ? dimplode($data['allowviewuserthread']['fids']) : '';
    } else {
        $data['allowviewuserthread'] = false;
    }
    include_once DISCUZ_ROOT . './source/discuz_version.php';
    $_G['setting']['version'] = $data['version'] = DISCUZ_VERSION;
    $data['sitemessage']['time'] = !empty($data['sitemessage']['time']) ? $data['sitemessage']['time'] * 1000 : 0;
    foreach (array('register', 'login', 'newthread', 'reply') as $type) {
        $data['sitemessage'][$type] = !empty($data['sitemessage'][$type]) ? explode("\n", $data['sitemessage'][$type]) : array();
    }
    $data['cachethreadon'] = DB::result_first("SELECT COUNT(*) FROM " . DB::table('forum_forum') . " WHERE status='1' AND threadcaches>0") ? 1 : 0;
    $data['disallowfloat'] = is_array($data['disallowfloat']) ? implode('|', $data['disallowfloat']) : '';
    if (!$data['imagelib']) {
        unset($data['imageimpath']);
    }
    if (is_array($data['relatedtag']['order'])) {
        asort($data['relatedtag']['order']);
        $relatedtag = array();
        foreach ($data['relatedtag']['order'] as $k => $v) {
            $relatedtag['status'][$k] = $data['relatedtag']['status'][$k];
            $relatedtag['name'][$k] = $data['relatedtag']['name'][$k];
            $relatedtag['limit'][$k] = $data['relatedtag']['limit'][$k];
            $relatedtag['template'][$k] = $data['relatedtag']['template'][$k];
        }
        $data['relatedtag'] = $relatedtag;
        foreach ((array) $data['relatedtag']['status'] as $appid => $status) {
            if (!$status) {
                unset($data['relatedtag']['limit'][$appid]);
            }
        }
        unset($data['relatedtag']['status'], $data['relatedtag']['order'], $relatedtag);
    }
    $data['domain']['defaultindex'] = isset($data['defaultindex']) && $data['defaultindex'] != '#' ? $data['defaultindex'] : '';
    $data['domain']['holddomain'] = isset($data['holddomain']) ? $data['holddomain'] : '';
    $data['domain']['list'] = array();
    $query = DB::query("SELECT * FROM " . DB::table('common_domain') . " WHERE idtype IN('subarea', 'forum', 'topic', 'channel')");
    while ($value = DB::fetch($query)) {
        $data['domain']['list'][$value['domain'] . '.' . $value['domainroot']] = array('id' => $value['id'], 'idtype' => $value['idtype']);
    }
    writetocache('domain', getcachevars(array('domain' => $data['domain'])));
    $data['seccodedata'] = is_array($data['seccodedata']) ? $data['seccodedata'] : array();
    if ($data['seccodedata']['type'] == 2) {
        if (extension_loaded('ming')) {
            unset($data['seccodedata']['background'], $data['seccodedata']['adulterate'], $data['seccodedata']['ttf'], $data['seccodedata']['angle'], $data['seccodedata']['color'], $data['seccodedata']['size'], $data['seccodedata']['animator']);
        } else {
            $data['seccodedata']['animator'] = 0;
        }
    } elseif ($data['seccodedata']['type'] == 99) {
        $data['seccodedata']['width'] = 32;
        $data['seccodedata']['height'] = 24;
    }
    $data['watermarktype'] = !empty($data['watermarktype']) ? unserialize($data['watermarktype']) : array();
    $data['watermarktext'] = !empty($data['watermarktext']) ? unserialize($data['watermarktext']) : array();
    foreach ($data['watermarktype'] as $k => $v) {
        if ($data['watermarktype'][$k] == 'text' && $data['watermarktext']['text'][$k]) {
            if ($data['watermarktext']['text'][$k] && strtoupper(CHARSET) != 'UTF-8') {
                $data['watermarktext']['text'][$k] = diconv($data['watermarktext']['text'][$k], CHARSET, 'UTF-8', true);
            }
            $data['watermarktext']['text'][$k] = bin2hex($data['watermarktext']['text'][$k]);
            if (file_exists('static/image/seccode/font/en/' . $data['watermarktext']['fontpath'][$k])) {
                $data['watermarktext']['fontpath'][$k] = 'static/image/seccode/font/en/' . $data['watermarktext']['fontpath'][$k];
            } elseif (file_exists('static/image/seccode/font/ch/' . $data['watermarktext']['fontpath'][$k])) {
                $data['watermarktext']['fontpath'][$k] = 'static/image/seccode/font/ch/' . $data['watermarktext']['fontpath'][$k];
            } else {
                $data['watermarktext']['fontpath'][$k] = 'static/image/seccode/font/' . $data['watermarktext']['fontpath'][$k];
            }
            $data['watermarktext']['color'][$k] = preg_replace('/#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/e', "hexdec('\\1').','.hexdec('\\2').','.hexdec('\\3')", $data['watermarktext']['color'][$k]);
            $data['watermarktext']['shadowcolor'][$k] = preg_replace('/#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/e', "hexdec('\\1').','.hexdec('\\2').','.hexdec('\\3')", $data['watermarktext']['shadowcolor'][$k]);
        } else {
            $data['watermarktext']['text'][$k] = '';
            $data['watermarktext']['fontpath'][$k] = '';
            $data['watermarktext']['color'][$k] = '';
            $data['watermarktext']['shadowcolor'][$k] = '';
        }
    }
    $data['styles'] = array();
    $query = DB::query("SELECT s.styleid, s.name, s.extstyle, t.directory FROM " . DB::table('common_style') . " s\n\t\t\t\tLEFT JOIN " . DB::table('common_template') . " t ON s.templateid=t.templateid\n\t\t\t\tWHERE s.available='1'");
    while ($style = DB::fetch($query)) {
        $data['styles'][$style['styleid']] = dhtmlspecialchars($style['name']);
    }
    $exchcredits = array();
    $allowexchangein = $allowexchangeout = FALSE;
    foreach ((array) $data['extcredits'] as $id => $credit) {
        $data['extcredits'][$id]['img'] = $credit['img'] ? '<img style="vertical-align:middle" src="' . $credit['img'] . '" />' : '';
        if (!empty($credit['ratio'])) {
            $exchcredits[$id] = $credit;
            $credit['allowexchangein'] && ($allowexchangein = TRUE);
            $credit['allowexchangeout'] && ($allowexchangeout = TRUE);
        }
        $data['creditnotice'] && ($data['creditnames'][] = str_replace("'", "\\'", htmlspecialchars($id . '|' . $credit['title'] . '|' . $credit['unit'])));
    }
    $data['creditnames'] = $data['creditnotice'] ? @implode(',', $data['creditnames']) : '';
    $creditstranssi = explode(',', $data['creditstrans']);
    $data['creditstrans'] = $creditstranssi[0];
    unset($creditstranssi[0]);
    $data['creditstransextra'] = $creditstranssi;
    for ($i = 1; $i < 11; $i++) {
        $data['creditstransextra'][$i] = $data['creditstrans'] ? !$data['creditstransextra'][$i] ? $data['creditstrans'] : $data['creditstransextra'][$i] : 0;
    }
    $data['exchangestatus'] = $allowexchangein && $allowexchangeout;
    $data['transferstatus'] = isset($data['extcredits'][$data['creditstrans']]);
    list($data['zoomstatus'], $data['imagemaxwidth']) = explode("\t", $data['zoomstatus']);
    $data['imagemaxwidth'] = intval($data['imagemaxwidth']);
    require_once DISCUZ_ROOT . './config/config_ucenter.php';
    $data['ucenterurl'] = UC_API;
    $query = DB::query("SELECT identifier, name FROM " . DB::table('common_magic') . " WHERE available='1'");
    while ($magic = DB::fetch($query)) {
        $data['magics'][$magic['identifier']] = $magic['name'];
    }
    $data['tradeopen'] = DB::result_first("SELECT count(*) FROM " . DB::table('common_usergroup_field') . " WHERE allowposttrade='1'") ? 1 : 0;
    $data['medalstatus'] = intval(DB::result_first("SELECT count(*) FROM " . DB::table('forum_medal') . " WHERE available='1'"));
    $focus = array();
    if ($data['focus']['data']) {
        foreach ($data['focus']['data'] as $k => $v) {
            if ($v['available'] && $v['position']) {
                foreach ($v['position'] as $position) {
                    $focus[$position][$k] = $k;
                }
            }
        }
    }
    $data['focus'] = $focus;
    list($data['plugins'], $data['pluginlinks'], $data['hookscript'], $data['hookscriptmobile'], $data['threadplugins'], $data['specialicon']) = get_cachedata_setting_plugin();
    if (empty($data['defaultindex'])) {
        $data['defaultindex'] = array();
    }
    list($data['navs'], $data['subnavs'], $data['menunavs'], $data['navmns'], $data['navmn'], $data['navdms'], $data['navlogos']) = get_cachedata_mainnav();
    $data['footernavs'] = get_cachedata_footernav();
    $data['spacenavs'] = get_cachedata_spacenavs();
    $data['mynavs'] = get_cachedata_mynavs();
    $data['topnavs'] = get_cachedata_topnav();
    require_once DISCUZ_ROOT . './uc_client/client.php';
    $ucapparray = uc_app_ls();
    $data['allowsynlogin'] = isset($ucapparray[UC_APPID]['synlogin']) ? $ucapparray[UC_APPID]['synlogin'] : 1;
    $appnamearray = array('UCHOME', 'XSPACE', 'DISCUZ', 'SUPESITE', 'SUPEV', 'ECSHOP', 'ECMALL', 'OTHER');
    $data['ucapp'] = $data['ucappopen'] = array();
    $data['uchomeurl'] = '';
    $data['discuzurl'] = $_G['siteurl'];
    $appsynlogins = 0;
    foreach ($ucapparray as $apparray) {
        if ($apparray['appid'] != UC_APPID) {
            if (!empty($apparray['synlogin'])) {
                $appsynlogins = 1;
            }
            if ($data['uc']['navlist'][$apparray['appid']] && $data['uc']['navopen']) {
                $data['ucapp'][$apparray['appid']]['name'] = $apparray['name'];
                $data['ucapp'][$apparray['appid']]['url'] = $apparray['url'];
            }
        } else {
            $data['discuzurl'] = $apparray['url'];
        }
        if (!empty($apparray['viewprourl'])) {
            $data['ucapp'][$apparray['appid']]['viewprourl'] = $apparray['url'] . $apparray['viewprourl'];
        }
        foreach ($appnamearray as $name) {
            if ($apparray['type'] == $name && $apparray['appid'] != UC_APPID) {
                $data['ucappopen'][$name] = 1;
                if ($name == 'UCHOME') {
                    $data['uchomeurl'] = $apparray['url'];
                } elseif ($name == 'XSPACE') {
                    $data['xspaceurl'] = $apparray['url'];
                }
            }
        }
    }
    $data['allowsynlogin'] = $data['allowsynlogin'] && $appsynlogins ? 1 : 0;
    $data['homeshow'] = $data['uchomeurl'] && $data['uchome']['homeshow'] ? $data['uchome']['homeshow'] : '0';
    unset($data['allowthreadplugin']);
    if ($data['jspath'] == 'data/cache/') {
        writetojscache();
    } elseif (!$data['jspath']) {
        $data['jspath'] = 'static/js/';
    }
    if ($data['cacheindexlife']) {
        $cachedir = DISCUZ_ROOT . './' . $data['cachethreaddir'];
        $tidmd5 = substr(md5(0), 3);
        @unlink($cachedir . '/' . $tidmd5[0] . '/' . $tidmd5[1] . '/' . $tidmd5[2] . '/0.htm');
    }
    $reginputbwords = array('username', 'password', 'password2', 'email');
    if (in_array($data['reginput']['username'], $reginputbwords) || !preg_match('/^[A-z]\\w+?$/', $data['reginput']['username'])) {
        $data['reginput']['username'] = random(6);
    }
    if (in_array($data['reginput']['password'], $reginputbwords) || !preg_match('/^[A-z]\\w+?$/', $data['reginput']['password'])) {
        $data['reginput']['password'] = random(6);
    }
    if (in_array($data['reginput']['password2'], $reginputbwords) || !preg_match('/^[A-z]\\w+?$/', $data['reginput']['password2'])) {
        $data['reginput']['password2'] = random(6);
    }
    if (in_array($data['reginput']['email'], $reginputbwords) || !preg_match('/^[A-z]\\w+?$/', $data['reginput']['email'])) {
        $data['reginput']['email'] = random(6);
    }
    $defaultcurhost = empty($_G['setting']['domain']['app']['default']) ? '{CURHOST}' : $_G['setting']['domain']['app']['default'];
    $output = array('str' => array(), 'preg' => array());
    //str為二級域名的查找和替換,preg為rewrite和默認域名的查找和替換
    $_G['domain'] = array();
    if (is_array($_G['setting']['domain']['app'])) {
        $apps = $_G['setting']['domain']['app'];
        $repflag = $apps['portal'] || $apps['forum'] || $apps['group'] || $apps['home'] || $apps['default'];
        foreach ($apps as $app => $domain) {
            if (in_array($app, array('default', 'mobile'))) {
                continue;
            }
            $appphp = "{$app}.php";
            if (!$domain) {
                $domain = $defaultcurhost;
            }
            if ($domain != '{CURHOST}') {
                $domain = 'http://' . $domain . $_G['siteport'] . '/';
            }
            if ($repflag) {
                $output['str']['search'][$app] = "<a href=\"{$app}.php";
                $output['str']['replace'][$app] = '<a href="' . $domain . $appphp;
                $_G['domain']['pregxprw'][$app] = '<a href\\="(' . preg_quote($domain, '/') . ')' . $appphp;
            } else {
                $_G['domain']['pregxprw'][$app] = '<a href\\="()' . $appphp;
            }
        }
    }
    if ($_G['setting']['rewritestatus'] || $output['str']['search']) {
        if ($_G['setting']['rewritestatus']) {
            require_once libfile('function/admincp');
            $output['preg'] = rewritedata(0);
        }
        if ($repflag) {
            if ($defaultcurhost != '{CURHOST}') {
                $defaultcurhost = 'http://' . $defaultcurhost . $_G['siteport'] . '/';
            }
            $output['preg']['search'][] = "/<a href=\"(\\w+\\.php)/";
            $output['preg']['replace'][] = '<a href="' . $defaultcurhost . "\$1";
        }
    }
    $data['output'] = $output;
    save_syscache('setting', $data);
    $_G['setting'] = $data;
}
Example #4
0
							$sub['url'] != '#' ? "<input name=\"defaultindex\" class=\"radio\" type=\"radio\" value=\"$sub[url]\"".($_G['setting']['defaultindex'] == $sub['url'] ? ' checked="checked"' : '')." />" : '',
							"<input class=\"checkbox\" type=\"checkbox\" name=\"availablenew[$sub[id]]\" value=\"1\" ".($sub['available'] ? 'checked' : '').">",
							"<a href=\"".ADMINSCRIPT."?action=nav&operation=headernav&do=edit&id=$sub[id]\" class=\"act\">$lang[edit]</a>"
						));
					}
					showtagfooter('tbody');
				}
			}
			showtagfooter('tbody');
/*vot*/			echo '<tr><td colspan="2"></td><td colspan="8"><div><a href="###" onclick="addrow(this, 0, 0)" class="addtr">'.$lang['misc_customnav_add_menu'].'</a></div></td></tr>';
			showsubmit('submit', 'submit', 'del');
			showtablefooter();
			showformfooter();

			loaducenter();
			$ucapparray = uc_app_ls();

			$applist = '';
			if(count($ucapparray) > 1) {
/*vot*/				$applist = "<br/>".$lang['misc_customnav_add_ucenter'].'<select name="applist" onchange="app(this)"><option value=""></option>';
				foreach($ucapparray as $app) {
					if($app['appid'] != UC_APPID) {
						$applist .= "<option value=\"$app[url]\">$app[name]</option>";
					}
				}
				$applist .= '</select>';
			}
			$applist = str_replace("'", "\'", $applist);

			echo <<<EOT
<script type="text/JavaScript">
Example #5
0
*/
error_reporting(E_ERROR | E_WARNING | E_PARSE);
$mtime = explode(' ', microtime());
$cyask_starttime = $mtime[1] + $mtime[0];
error_reporting(7);
define('IN_CYASK', TRUE);
define('CYASK_ROOT', substr(dirname(__FILE__), 0, -7));
require_once CYASK_ROOT . './config.inc.php';
require_once CYASK_ROOT . './include/global.func.php';
require_once CYASK_ROOT . './include/db_' . $database . '.php';
require_once CYASK_ROOT . './uc_client/client.php';
file_exists(CYASK_ROOT . './uc_client/data/cache/apps.php') && (include_once CYASK_ROOT . './uc_client/data/cache/apps.php');
if (isset($_CACHE['apps'])) {
    rsort($_CACHE['apps']);
} else {
    $_CACHE['apps'] = rsort(uc_app_ls());
}
if (!defined('CURSCRIPT')) {
    exit('CURSCRIPT ERROR');
}
$magic_quotes_gpc = get_magic_quotes_gpc();
if (!$magic_quotes_gpc) {
    $_POST = daddslashes($_POST);
    $_GET = daddslashes($_GET);
    $_FILES = daddslashes($_FILES);
}
$cyask_version = '3.0 for UCenter';
$timestamp = time();
$PHP_SELF = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
$QUERY_STRING = empty($_SERVER['QUERY_STRING']) ? '' : '?' . $_SERVER['QUERY_STRING'];
$onlineip = $_SERVER['REMOTE_ADDR'] ? $_SERVER['REMOTE_ADDR'] : '0.0.0.0';
Example #6
0
}
//权限
if (!checkperm('manageapp')) {
    cpmessage('no_authority_management_operation');
}
if (submitcheck('appsubmit')) {
    include_once S_ROOT . './source/function_cache.php';
    data_set('relatedtag', $_POST['relatedtag']);
    tagtpl_cache();
    app_cache();
    //应用列表缓存
    cpmessage('do_success', 'admincp.php?ac=app');
}
if (empty($_GET['op'])) {
    include_once S_ROOT . './uc_client/client.php';
    $applist = uc_app_ls();
    $relatedtag = data_get('relatedtag');
    $relatedtag = unserialize($relatedtag);
    if (empty($relatedtag)) {
        $relatedtag = array();
    }
}
//更新tag模板文件
function tagtpl_cache()
{
    $relatedtag = unserialize(data_get('relatedtag'));
    if (empty($relatedtag)) {
        $relatedtag = array();
    }
    foreach ($relatedtag['data'] as $appid => $data) {
        $relatedtag['limit'][$appid] = empty($relatedtag['limit'][$appid]) ? 0 : intval($relatedtag['limit'][$appid]);
Example #7
0
function build_cache_setting() {
	global $_G;

	$skipkeys = array('posttableids', 'mastermobile', 'masterqq', 'masteremail', 'closedreason',
		'creditsnotify', 'backupdir', 'custombackup', 'jswizard', 'maxonlines', 'modreasons', 'newsletter',
		'postno', 'postnocustom', 'customauthorinfo', 'domainwhitelist', 'ipregctrl',
		'ipverifywhite', 'fastsmiley', 'defaultdoing', 'antitheftsetting',
		);
	$serialized = array('reginput', 'memory', 'search', 'creditspolicy', 'ftp', 'secqaa', 'ec_credit', 'qihoo', 'spacedata',
		'infosidestatus', 'uc', 'indexhot', 'relatedtag', 'sitemessage', 'uchome', 'heatthread', 'recommendthread',
		'disallowfloat', 'allowviewuserthread', 'advtype', 'click', 'card', 'rewritestatus', 'rewriterule', 'privacy', 'focus',
		'forumkeys', 'article_tags', 'verify', 'seotitle', 'seodescription', 'seokeywords', 'domain', 'ranklist', 'my_search_data',
		'seccodedata', 'inviteconfig', 'advexpiration', 'allowpostcomment', /*(IN_MOBILE)*/ 'mobile', 'connect', 'upgrade', 'patch', 'strongpw',
		'posttable_info', 'threadtable_info', 'profilegroup', 'antitheft', 'makehtml', 'guestviewthumb', 'grid', 'guesttipsinthread'
		);

	$data = array();

	foreach(C::t('common_setting')->fetch_all_not_key($skipkeys) as $setting) {
		if($setting['skey'] == 'extcredits') {
			if(is_array($setting['svalue'] = dunserialize($setting['svalue']))) {
				foreach($setting['svalue'] as $key => $value) {
					if($value['available']) {
						unset($setting['svalue'][$key]['available']);
					} else {
						unset($setting['svalue'][$key]);
					}
				}
			}
		} elseif($setting['skey'] == 'creditsformula') {
			if(!checkformulacredits($setting['svalue'])) {
				$setting['svalue'] = '$member[\'extcredits1\']';
			} else {
				$setting['svalue'] = preg_replace("/(friends|doings|blogs|albums|polls|sharings|digestposts|posts|threads|oltime|extcredits[1-8])/", "\$member['\\1']", $setting['svalue']);
			}
		} elseif($setting['skey'] == 'maxsmilies') {
			$setting['svalue'] = $setting['svalue'] <= 0 ? -1 : $setting['svalue'];
		} elseif($setting['skey'] == 'threadsticky') {
			$setting['svalue'] = explode(',', $setting['svalue']);
		} elseif($setting['skey'] == 'attachdir') {
			$setting['svalue'] = preg_replace("/\.asp|\\0/i", '0', $setting['svalue']);
			$setting['svalue'] = str_replace('\\', '/', substr($setting['svalue'], 0, 2) == './' ? DISCUZ_ROOT.$setting['svalue'] : $setting['svalue']);
			$setting['svalue'] .= substr($setting['svalue'], -1, 1) != '/' ? '/' : '';
		} elseif($setting['skey'] == 'attachurl') {
			$setting['svalue'] .= substr($setting['svalue'], -1, 1) != '/' ? '/' : '';
		} elseif($setting['skey'] == 'onlinehold') {
			$setting['svalue'] = $setting['svalue'] * 60;
		} elseif(in_array($setting['skey'], $serialized)) {
			$setting['svalue'] = @dunserialize($setting['svalue'], $setting['skey']);
			if($setting['skey'] == 'search') {
				foreach($setting['svalue'] as $key => $val) {
					foreach($val as $k => $v) {
						$setting['svalue'][$key][$k] = max(0, intval($v));
					}
				}
			} elseif($setting['skey'] == 'ftp') {
				$setting['svalue']['attachurl'] .= substr($setting['svalue']['attachurl'], -1, 1) != '/' ? '/' : '';
			} elseif($setting['skey'] == 'inviteconfig') {
				$setting['svalue']['invitecodeprompt'] = stripslashes($setting['svalue']['invitecodeprompt']);
			} elseif($setting['skey'] == 'profilegroup') {
				$profile_settings = C::t('common_member_profile_setting')->fetch_all_by_available(1);
				foreach($setting['svalue'] as $key => $val) {
					$temp = array();
					foreach($profile_settings as $pval) {
						if(in_array($pval['fieldid'], $val['field'])) {
							$temp[$pval['fieldid']] = $pval['fieldid'];
						}
					}
					foreach($val['field'] as $fieldid) {
						if(!in_array($fieldid, $temp)) {
							$temp[$fieldid] = $fieldid;
						}
					}
					$setting['svalue'][$key]['field'] = $temp;
				}
				C::t('common_setting')->update('profilegroup', $setting['svalue']);
			}
		}
		$_G['setting'][$setting['skey']] = $data[$setting['skey']] = $setting['svalue'];
	}

	$usergroup = C::t('common_usergroup')->fetch_by_credits($data['initcredits'], '');
	$data['newusergroupid'] = $usergroup['groupid'];
	$data['buyusergroupexists'] = C::t('common_usergroup')->buyusergroup_exists();

	if($data['srchhotkeywords']) {
		$data['srchhotkeywords'] = explode("\n", $data['srchhotkeywords']);
	}

	if($data['search']) {
		$searchstatus = 0;
		foreach($data['search'] as $item) {
			if($item['status']) {
				$searchstatus = 1;
				break;
			}
		}
		if(!$searchstatus) {
			$data['search'] = array();
		}
	}

	$data['creditspolicy'] = array_merge($data['creditspolicy'], get_cachedata_setting_creditspolicy());

	if($data['heatthread']['iconlevels']) {
		$data['heatthread']['iconlevels'] = explode(',', $data['heatthread']['iconlevels']);
		arsort($data['heatthread']['iconlevels']);
	} else {
		$data['heatthread']['iconlevels'] = array();
	}
	if($data['verify']) {
		foreach($data['verify'] as $key => $value) {
			if($value['available']) {
				if(!empty($value['unverifyicon'])) {
					$icourl = parse_url($value['unverifyicon']);
					if(!$icourl['host'] && !file_exists($value['unverifyicon'])) {
						$data['verify'][$key]['unverifyicon'] = $data['attachurl'].'common/'.$value['unverifyicon'];
					}
				}
				if(!empty($value['icon'])) {
					$icourl = parse_url($value['icon']);
					if(!$icourl['host'] && !file_exists($value['icon'])) {
						$data['verify'][$key]['icon'] = $data['attachurl'].'common/'.$value['icon'];
					}
				}
			}
		}
	}

	if($data['recommendthread']['status']) {
		if($data['recommendthread']['iconlevels']) {
			$data['recommendthread']['iconlevels'] = explode(',', $data['recommendthread']['iconlevels']);
			arsort($data['recommendthread']['iconlevels']);
		} else {
			$data['recommendthread']['iconlevels'] = array();
		}
	} else {
		$data['recommendthread'] = array('allow' => 0);
	}

	if($data['commentnumber'] && !$data['allowpostcomment']) {
		$data['commentnumber'] = 0;
	}

	if(!empty($data['ftp'])) {
		if(!empty($data['ftp']['allowedexts'])) {
			$data['ftp']['allowedexts'] = str_replace(array("\r\n", "\r"), array("\n", "\n"), $data['ftp']['allowedexts']);
			$data['ftp']['allowedexts'] = explode("\n", strtolower($data['ftp']['allowedexts']));
			array_walk($data['ftp']['allowedexts'], 'trim');
		}
		if(!empty($data['ftp']['disallowedexts'])) {
			$data['ftp']['disallowedexts'] = str_replace(array("\r\n", "\r"), array("\n", "\n"), $data['ftp']['disallowedexts']);
			$data['ftp']['disallowedexts'] = explode("\n", strtolower($data['ftp']['disallowedexts']));
			array_walk($data['ftp']['disallowedexts'], 'trim');
		}
		$data['ftp']['connid'] = 0;
	}

	if(!empty($data['forumkeys'])) {
		$data['forumfids'] = array_flip($data['forumkeys']);
	} else {
		$data['forumfids'] = array();
	}

	$data['commentitem'] = explode("\t", $data['commentitem']);
	$commentitem = array();
	foreach($data['commentitem'] as $k => $v) {
		$tmp = explode(chr(0).chr(0).chr(0), $v);
		if(count($tmp) > 1) {
			$commentitem[$tmp[0]] = $tmp[1];
		} else {
			$commentitem[$k] = $v;
		}
	}
	$data['commentitem'] = $commentitem;

	if($data['allowviewuserthread']['allow']) {
		$data['allowviewuserthread'] = is_array($data['allowviewuserthread']['fids']) && $data['allowviewuserthread']['fids'] && !in_array('', $data['allowviewuserthread']['fids']) ? dimplode($data['allowviewuserthread']['fids']) : '';
	} else {
		$data['allowviewuserthread'] = -1;
	}

	include_once DISCUZ_ROOT.'./source/discuz_version.php';
	$_G['setting']['version'] = $data['version'] = DISCUZ_VERSION;
/*vot*/	$_G['setting']['release'] = $data['release'] = DISCUZ_RELEASE;
/*vot*/	$_G['setting']['ml_revision'] = $data['ml_revision'] = DISCUZ_ML_REVISION;

	$data['sitemessage']['time'] = !empty($data['sitemessage']['time']) ? $data['sitemessage']['time'] * 1000 : 0;
	foreach (array('register', 'login', 'newthread', 'reply') as $type) {
		$data['sitemessage'][$type] = !empty($data['sitemessage'][$type]) ? explode("\n", $data['sitemessage'][$type]) : array();
	}

	$data['cachethreadon'] = C::t('forum_forum')->fetch_threadcacheon_num() ? 1 : 0;
	$data['disallowfloat'] = is_array($data['disallowfloat']) ? implode('|', $data['disallowfloat']) : '';

	if(!$data['imagelib']) unset($data['imageimpath']);

	if(is_array($data['relatedtag']['order'])) {
		asort($data['relatedtag']['order']);
		$relatedtag = array();
		foreach($data['relatedtag']['order'] AS $k => $v) {
			$relatedtag['status'][$k] = $data['relatedtag']['status'][$k];
			$relatedtag['name'][$k] = $data['relatedtag']['name'][$k];
			$relatedtag['limit'][$k] = $data['relatedtag']['limit'][$k];
			$relatedtag['template'][$k] = $data['relatedtag']['template'][$k];
		}
		$data['relatedtag'] = $relatedtag;

		foreach((array)$data['relatedtag']['status'] AS $appid => $status) {
			if(!$status) {
				unset($data['relatedtag']['limit'][$appid]);
			}
		}
		unset($data['relatedtag']['status'], $data['relatedtag']['order'], $relatedtag);
	}

	$data['domain']['defaultindex'] = isset($data['defaultindex']) && $data['defaultindex'] != '#' ? $data['defaultindex'] : '';
	$data['domain']['holddomain'] = isset($data['holddomain']) ? $data['holddomain'] : '';
	$data['domain']['list'] = array();
	foreach(C::t('common_domain')->fetch_all_by_idtype(array('subarea', 'forum', 'topic', 'channel')) as $value) {
		$data['domain']['list'][$value['domain'].'.'.$value['domainroot']] = array('id' => $value['id'], 'idtype' => $value['idtype']);
	}
	writetocache('domain', getcachevars(array('domain' => $data['domain'])));

	$data['seccodedata'] = is_array($data['seccodedata']) ? $data['seccodedata'] : array();
	if($data['seccodedata']['type'] == 2) {
		if(extension_loaded('ming')) {
			unset($data['seccodedata']['background'], $data['seccodedata']['adulterate'],
			$data['seccodedata']['ttf'], $data['seccodedata']['angle'],
			$data['seccodedata']['color'], $data['seccodedata']['size'],
			$data['seccodedata']['animator']);
		} else {
			$data['seccodedata']['animator'] = 0;
		}
	} elseif($data['seccodedata']['type'] == 99) {
		$data['seccodedata']['width'] = 32;
		$data['seccodedata']['height'] = 24;
	}

	$data['watermarktype'] = !empty($data['watermarktype']) ? dunserialize($data['watermarktype']) : array();
	$data['watermarktext'] = !empty($data['watermarktext']) ? dunserialize($data['watermarktext']) : array();
	foreach($data['watermarktype'] as $k => $v) {
		if($data['watermarktype'][$k] == 'text' && $data['watermarktext']['text'][$k]) {
			if($data['watermarktext']['text'][$k] && strtoupper(CHARSET) != 'UTF-8') {
				$data['watermarktext']['text'][$k] = diconv($data['watermarktext']['text'][$k], CHARSET, 'UTF-8', true);
			}
			$data['watermarktext']['text'][$k] = bin2hex($data['watermarktext']['text'][$k]);
			if(file_exists('static/image/seccode/font/en/'.$data['watermarktext']['fontpath'][$k])) {
				$data['watermarktext']['fontpath'][$k] = 'static/image/seccode/font/en/'.$data['watermarktext']['fontpath'][$k];
			} elseif(file_exists('static/image/seccode/font/ch/'.$data['watermarktext']['fontpath'][$k])) {
				$data['watermarktext']['fontpath'][$k] = 'static/image/seccode/font/ch/'.$data['watermarktext']['fontpath'][$k];
			} else {
				$data['watermarktext']['fontpath'][$k] = 'static/image/seccode/font/'.$data['watermarktext']['fontpath'][$k];
			}
			$data['watermarktext']['color'][$k] = preg_replace('/#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/e', "hexdec('\\1').','.hexdec('\\2').','.hexdec('\\3')", $data['watermarktext']['color'][$k]);
			$data['watermarktext']['shadowcolor'][$k] = preg_replace('/#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/e', "hexdec('\\1').','.hexdec('\\2').','.hexdec('\\3')", $data['watermarktext']['shadowcolor'][$k]);
		} else {
			$data['watermarktext']['text'][$k] = '';
			$data['watermarktext']['fontpath'][$k] = '';
			$data['watermarktext']['color'][$k] = '';
			$data['watermarktext']['shadowcolor'][$k] = '';
		}
	}

	$data['styles'] = array();
	foreach(C::t('common_style')->fetch_all_data(false, 1) as $style) {
		$data['styles'][$style['styleid']] = dhtmlspecialchars($style['name']);
	}

	$exchcredits = array();
	$allowexchangein = $allowexchangeout = FALSE;
	foreach((array)$data['extcredits'] as $id => $credit) {
		$data['extcredits'][$id]['img'] = $credit['img'] ? '<img style="vertical-align:middle" src="'.$credit['img'].'" />' : '';
		if(!empty($credit['ratio'])) {
			$exchcredits[$id] = $credit;
			$credit['allowexchangein'] && $allowexchangein = TRUE;
			$credit['allowexchangeout'] && $allowexchangeout = TRUE;
		}
		$data['creditnotice'] && $data['creditnames'][] = str_replace("'", "\'", dhtmlspecialchars($id.'|'.$credit['title'].'|'.$credit['unit']));
	}
	$data['creditnames'] = $data['creditnotice'] ? @implode(',', $data['creditnames']) : '';

	$creditstranssi = explode(',', $data['creditstrans']);
	$data['creditstrans'] = $creditstranssi[0];
	unset($creditstranssi[0]);
	$data['creditstransextra'] = $creditstranssi;
	for($i = 1;$i < 11;$i++) {
		$data['creditstransextra'][$i] = $data['creditstrans'] ? (!$data['creditstransextra'][$i] ? $data['creditstrans'] : $data['creditstransextra'][$i]) : 0;
	}
	$data['exchangestatus'] = $allowexchangein && $allowexchangeout;
	$data['transferstatus'] = isset($data['extcredits'][$data['creditstrans']]);

	list($data['zoomstatus'], $data['imagemaxwidth']) = explode("\t", $data['zoomstatus']);
	$data['imagemaxwidth'] = intval($data['imagemaxwidth']);

	require_once DISCUZ_ROOT.'./config/config_ucenter.php';
	$data['ucenterurl'] = UC_API;

	foreach(C::t('common_magic')->fetch_all_data(1) as $magic) {
		$magic['identifier'] = str_replace(':', '_', $magic['identifier']);
		$data['magics'][$magic['identifier']] = $magic['name'];
	}

	$data['tradeopen'] = C::t('common_usergroup_field')->count_by_field('allowposttrade', 1) ? 1 : 0;
	$data['medalstatus'] = intval(C::t('forum_medal')->count_by_available());

	$focus = array();
	if($data['focus']['data']) {
		foreach($data['focus']['data'] as $k => $v) {
			if($v['available'] && $v['position']) {
				foreach($v['position'] as $position) {
					$focus[$position][$k] = $k;
				}
			}
		}
	}
	$data['focus'] = $focus;

	list($data['plugins'], $data['pluginlinks'], $data['hookscript'], $data['hookscriptmobile'], $data['threadplugins'], $data['specialicon']) = get_cachedata_setting_plugin();

	if(empty($data['defaultindex'])) $data['defaultindex'] = array();
	list($data['navs'], $data['subnavs'], $data['menunavs'], $data['navmns'], $data['navmn'], $data['navdms'], $data['navlogos']) = get_cachedata_mainnav();

	$data['footernavs'] = get_cachedata_footernav();
	$data['spacenavs'] = get_cachedata_spacenavs();
	$data['mynavs'] = get_cachedata_mynavs();
	$data['topnavs'] = get_cachedata_topnav();
	$data['profilenode'] = get_cachedata_threadprofile();

	require_once DISCUZ_ROOT.'./uc_client/client.php';
	$ucapparray = uc_app_ls();
	$data['allowsynlogin'] = isset($ucapparray[UC_APPID]['synlogin']) ? $ucapparray[UC_APPID]['synlogin'] : 1;
	$appnamearray = array('UCHOME','XSPACE','DISCUZ','SUPESITE','SUPEV','ECSHOP','ECMALL','OTHER');
	$data['ucapp'] = $data['ucappopen'] = array();
	$data['uchomeurl'] = '';
	$data['discuzurl'] = $_G['siteurl'];
	$appsynlogins = 0;
	foreach($ucapparray as $apparray) {
		if($apparray['appid'] != UC_APPID) {
			if(!empty($apparray['synlogin'])) {
				$appsynlogins = 1;
			}
			if($data['uc']['navlist'][$apparray['appid']] && $data['uc']['navopen']) {
				$data['ucapp'][$apparray['appid']]['name'] = $apparray['name'];
				$data['ucapp'][$apparray['appid']]['url'] = $apparray['url'];
			}
		} else {
			$data['discuzurl'] = $apparray['url'];
		}
		if(!empty($apparray['viewprourl'])) {
			$data['ucapp'][$apparray['appid']]['viewprourl'] = $apparray['url'].$apparray['viewprourl'];
		}
		foreach($appnamearray as $name) {
			if($apparray['type'] == $name && $apparray['appid'] != UC_APPID) {
				$data['ucappopen'][$name] = 1;
				if($name == 'UCHOME') {
					$data['uchomeurl'] = $apparray['url'];
				} elseif($name == 'XSPACE') {
					$data['xspaceurl'] = $apparray['url'];
				}
			}
		}
	}
	$data['allowsynlogin'] = $data['allowsynlogin'] && $appsynlogins ? 1 : 0;
	$data['homeshow'] = $data['uchomeurl'] && $data['uchome']['homeshow'] ? $data['uchome']['homeshow'] : '0';

	unset($data['allowthreadplugin']);
	if($data['jspath'] == 'data/cache/') {
		writetojscache();
	} elseif(!$data['jspath']) {
		$data['jspath'] = 'static/js/';
	}

	if($data['cacheindexlife']) {
		$cachedir = DISCUZ_ROOT.'./'.$data['cachethreaddir'];
		$tidmd5 = substr(md5(0), 3);
		@unlink($cachedir.'/'.$tidmd5[0].'/'.$tidmd5[1].'/'.$tidmd5[2].'/0.htm');
	}

	$reginputbwords = array('username', 'password', 'password2', 'email');
	if(in_array($data['reginput']['username'], $reginputbwords) || !preg_match('/^[A-z]\w+?$/', $data['reginput']['username'])) {
		$data['reginput']['username'] = random(6);
	}
	if(in_array($data['reginput']['password'], $reginputbwords) || !preg_match('/^[A-z]\w+?$/', $data['reginput']['password'])) {
		$data['reginput']['password'] = random(6);
	}
	if(in_array($data['reginput']['password2'], $reginputbwords) || !preg_match('/^[A-z]\w+?$/', $data['reginput']['password2'])) {
		$data['reginput']['password2'] = random(6);
	}
	if(in_array($data['reginput']['email'], $reginputbwords) || !preg_match('/^[A-z]\w+?$/', $data['reginput']['email'])) {
		$data['reginput']['email'] = random(6);
	}

	$defaultcurhost = empty($_G['setting']['domain']['app']['default']) ? '{CURHOST}' : $_G['setting']['domain']['app']['default'];
	$output = array('str'=>array(), 'preg' => array()); //str为二级域名的查找和替换,preg为rewrite和默认域名的查找和替换
	$_G['domain'] = array();
	if(is_array($_G['setting']['domain']['app'])) {
		$apps = $_G['setting']['domain']['app'];
		$repflag = $apps['portal'] || $apps['forum'] || $apps['group'] || $apps['home'] || $apps['default'];
		foreach($apps as $app => $domain) {
			if(in_array($app, array('default', 'mobile'))) {
				continue;
			}
			$appphp = "{$app}.php";
			if(!$domain) {
				$domain = $defaultcurhost;
			}
			if($domain != '{CURHOST}') {
				$domain = 'http://'.$domain.$_G['siteport'].'/';
			}
			if($repflag) {
				$output['str']['search'][$app] = "<a href=\"{$app}.php";
				$output['str']['replace'][$app] = '<a href="'.$domain.$appphp;
				$_G['domain']['pregxprw'][$app] = '<a href\="('.preg_quote($domain, '/').')'.$appphp;
			} else {
				$_G['domain']['pregxprw'][$app] = '<a href\="()'.$appphp;
			}
		}
	}
	if($_G['setting']['rewritestatus'] || $output['str']['search']) {
		if($_G['setting']['rewritestatus']) {
			require_once libfile('function/admincp');
			$output['preg'] = rewritedata(0);
		}
		if($output['preg']) {
			foreach($data['footernavs'] as $id => $nav) {
				$data['footernavs'][$id]['code'] = preg_replace($output['preg']['search'], $output['preg']['replace'], $nav['code']);
			}
			foreach($data['spacenavs'] as $id => $nav) {
				$data['spacenavs'][$id]['code'] = preg_replace($output['preg']['search'], $output['preg']['replace'], $nav['code']);
			}
			foreach($data['mynavs'] as $id => $nav) {
				$data['mynavs'][$id]['code'] = preg_replace($output['preg']['search'], $output['preg']['replace'], $nav['code']);
			}
			foreach($data['topnavs'] as $id => $nav) {
				$data['topnavs'][$id]['code'] = preg_replace($output['preg']['search'], $output['preg']['replace'], $nav['code']);
			}
			foreach($data['plugins']['jsmenu'] as $key => $nav) {
				$data['plugins']['jsmenu'][$key]['url'] = preg_replace($output['preg']['search'], $output['preg']['replace'], $nav['url']);
			}
		}
	}
	$data['output'] = $output;
	$data['connect'] = in_array('qqconnect', $data['plugins']['available']) ? $data['connect'] : array();

	savecache('setting', $data);
	$_G['setting'] = $data;
}
Example #8
0
 function uc_show()
 {
     $this->dtp->Assign('uc_config_file', $this->config);
     if (!defined('UC_APPID')) {
         $this->dtp->LoadTemplate(DEDEADMIN . '/templets/api_ucenter_install.htm');
     } else {
         $uc_api_open = false;
         $ucapparray = uc_app_ls();
         foreach ($ucapparray as $apparray) {
             if ($apparray['appid'] == UC_APPID) {
                 $uc_api_open = true;
                 break;
             }
         }
         if (!$uc_api_open) {
             ShowMsg("DedeCMS没找到正确的uc配置!", -1);
             exit;
         }
         list($dbname, $dbtablepre) = explode('.', str_replace('`', '', UC_DBTABLEPRE));
         $uc_setings = array('appid' => UC_APPID, 'ucapi' => UC_API, 'connect' => UC_CONNECT, 'dbhost' => UC_DBHOST, 'dbuser' => UC_DBUSER, 'dbpass' => UC_DBPW, 'dbname' => $dbname, 'dbtablepre' => $dbtablepre, 'ucip' => UC_IP, 'authkey' => UC_KEY);
         $this->dtp->Assign('uc_setings', $uc_setings);
         $this->dtp->LoadTemplate(DEDEADMIN . '/templets/api_ucenter_edit.htm');
     }
     $this->dtp->Display();
     exit;
 }
Example #9
0
 function submenu_credit_exchange()
 {
     echo '<div class=wrap>';
     echo '<h2>' . __('Credit Exchange', 'ucenter') . '</h2>';
     global $current_user;
     wp_get_current_user();
     list($uid, $_, $_) = uc_get_user($current_user->user_login);
     $credit = intval(get_usermeta($current_user->ID, 'ucenter_credit'));
     if (empty($credit)) {
         $credit = 0;
     }
     echo __('Current Credits : ', 'ucenter') . $credit . ' ' . $this->integration_settings['ucenter_credit_unit'] . '<br />';
     echo '<br />';
     $apps = uc_app_ls();
     $ratio_array = array();
     foreach ($this->integration_settings['ucenter_credit_exchange_setting'] as $appid => $appsettings) {
         if ($appid == UC_APPID) {
             foreach ($appsettings as $appsetting) {
                 foreach ($apps as $app) {
                     if ($app['appid'] == $appsetting['appiddesc']) {
                         echo '<form action="" method="post">';
                         printf(__('Exchange %s <input type="text" name="amount" size=5 value="0"> %s to %s %s with ratio %s', 'ucenter'), $this->integration_settings['ucenter_credit_name'], $this->integration_settings['ucenter_credit_unit'], $app['name'], $appsetting['title'], $appsetting['ratio']);
                         echo "<input type='hidden' name='to' value='{$appsetting['creditdesc']}'>";
                         echo "<input type='hidden' name='toappid' value='{$appsetting['appiddesc']}'>";
                         echo '<input type="submit"><br />';
                         echo '</form>';
                         $ratio_array[implode(',', array($appsetting['creditdesc'], $appsetting['appiddesc']))] = $appsetting['ratio'];
                     }
                 }
             }
         }
     }
     if (!empty($_POST['to']) && !empty($_POST['toappid'])) {
         if (intval($_POST['amount']) >= 0 && intval($_POST['amount']) <= $credit) {
             $ratio = $ratio_array[implode(',', array($_POST['to'], $_POST['toappid']))];
             if (uc_credit_exchange_request($uid, 0, $_POST['to'], $_POST['toappid'], $_POST['amount'] / $ratio)) {
                 $credit -= $_POST['amount'];
                 update_usermeta($current_user->ID, 'ucenter_credit', $credit);
                 _e('Exchange Success!', 'ucenter');
             }
         } else {
             _e('Invalid Credit Amount!', 'ucenter');
         }
     }
     echo '</div>';
 }
Example #10
0
function getcachearray($cachename, $script = '')
{
    global $db, $timestamp, $tablepre, $timeoffset, $maxbdays, $smcols, $smrows, $charset;
    $cols = '*';
    $conditions = '';
    switch ($cachename) {
        case 'settings':
            $table = 'settings';
            $conditions = "WHERE variable NOT IN ('siteuniqueid', 'mastermobile', 'bbrules', 'bbrulestxt', 'closedreason', 'creditsnotify', 'backupdir', 'custombackup', 'jswizard', 'maxonlines', 'modreasons', 'newsletter', 'welcomemsg', 'welcomemsgtxt', 'postno', 'postnocustom', 'customauthorinfo')";
            break;
        case 'custominfo':
            $table = 'settings';
            $conditions = "WHERE variable IN ('extcredits', 'customauthorinfo', 'postno', 'postnocustom')";
            break;
        case 'request':
            $table = 'request';
            $conditions = '';
            break;
        case 'usergroups':
            $table = 'usergroups';
            $cols = 'groupid, type, grouptitle, creditshigher, creditslower, stars, color, groupavatar, readaccess, allowcusbbcode';
            $conditions = "ORDER BY creditslower";
            break;
        case 'ranks':
            $table = 'ranks';
            $cols = 'ranktitle, postshigher, stars, color';
            $conditions = "ORDER BY postshigher DESC";
            break;
        case 'announcements':
            $table = 'announcements';
            $cols = 'id, subject, type, starttime, endtime, displayorder, groups, message';
            $conditions = "WHERE starttime<='{$timestamp}' AND (endtime>='{$timestamp}' OR endtime='0') ORDER BY displayorder, starttime DESC, id DESC";
            break;
        case 'announcements_forum':
            $table = 'announcements a';
            $cols = 'a.id, a.author, m.uid AS authorid, a.subject, a.message, a.type, a.starttime, a.displayorder';
            $conditions = "LEFT JOIN {$tablepre}members m ON m.username=a.author WHERE a.type!=2 AND a.groups = '' AND a.starttime<='{$timestamp}' ORDER BY a.displayorder, a.starttime DESC, a.id DESC LIMIT 1";
            break;
        case in_array($cachename, array('globalstick', 'floatthreads')):
            $table = 'forums';
            $cols = 'fid, type, fup';
            $conditions = "WHERE status>0 AND type IN ('forum', 'sub') ORDER BY type";
            break;
        case 'forums':
            $table = 'forums f';
            $cols = 'f.fid, f.type, f.name, f.fup, f.simple, ff.viewperm, ff.formulaperm, a.uid';
            $conditions = "LEFT JOIN {$tablepre}forumfields ff ON ff.fid=f.fid LEFT JOIN {$tablepre}access a ON a.fid=f.fid AND a.allowview>'0' WHERE f.status>0 ORDER BY f.type, f.displayorder";
            break;
        case 'onlinelist':
            $table = 'onlinelist';
            $conditions = "ORDER BY displayorder";
            break;
        case 'groupicon':
            $table = 'onlinelist';
            $conditions = "ORDER BY displayorder";
            break;
        case 'forumlinks':
            $table = 'forumlinks';
            $conditions = "ORDER BY displayorder";
            break;
        case 'bbcodes':
            $table = 'bbcodes';
            $conditions = "WHERE available>'0' AND type='0'";
            break;
        case 'bbcodes_display':
            $table = 'bbcodes';
            $cols = 'type, tag, icon, explanation, params, prompt';
            $conditions = "WHERE available='2' AND icon!='' ORDER BY displayorder";
            break;
        case 'smilies':
            $table = 'smilies s';
            $cols = 's.id, s.code, s.url, t.typeid';
            $conditions = "LEFT JOIN {$tablepre}imagetypes t ON t.typeid=s.typeid WHERE s.type='smiley' AND s.code<>'' AND t.available='1' ORDER BY LENGTH(s.code) DESC";
            break;
        case 'smileycodes':
            $table = 'imagetypes';
            $cols = 'typeid, directory';
            $conditions = "WHERE type='smiley' AND available='1' ORDER BY displayorder";
            break;
        case 'smileytypes':
            $table = 'imagetypes';
            $cols = 'typeid, name, directory';
            $conditions = "WHERE type='smiley' AND available='1' ORDER BY displayorder";
            break;
        case 'smilies_js':
            $table = 'imagetypes';
            $cols = 'typeid, name, directory';
            $conditions = "WHERE type='smiley' AND available='1' ORDER BY displayorder";
            break;
        case 'icons':
            $table = 'smilies';
            $cols = 'id, url';
            $conditions = "WHERE type='icon' ORDER BY displayorder";
            break;
        case 'fields_required':
            $table = 'profilefields';
            $cols = 'fieldid, invisible, title, description, required, unchangeable, selective, choices';
            $conditions = "WHERE available='1' AND required='1' ORDER BY displayorder";
            break;
        case 'fields_optional':
            $table = 'profilefields';
            $cols = 'fieldid, invisible, title, description, required, unchangeable, selective, choices';
            $conditions = "WHERE available='1' AND required='0' ORDER BY displayorder";
            break;
        case 'ipbanned':
            $db->query("DELETE FROM {$tablepre}banned WHERE expiration<'{$timestamp}'");
            $table = 'banned';
            $cols = 'ip1, ip2, ip3, ip4, expiration';
            break;
        case 'censor':
            $table = 'words';
            $cols = 'find, replacement';
            break;
        case 'medals':
            $table = 'medals';
            $cols = 'medalid, name, image';
            $conditions = "WHERE available='1'";
            break;
        case 'magics':
            $table = 'magics';
            $cols = 'magicid, available, identifier, name, description, weight, price';
            break;
        case 'birthdays_index':
            $table = 'members';
            $cols = 'uid, username, email, bday';
            $conditions = "WHERE RIGHT(bday, 5)='" . gmdate('m-d', $timestamp + $timeoffset * 3600) . "' ORDER BY bday LIMIT {$maxbdays}";
            break;
        case 'birthdays':
            $table = 'members';
            $cols = 'uid';
            $conditions = "WHERE RIGHT(bday, 5)='" . gmdate('m-d', $timestamp + $timeoffset * 3600) . "' ORDER BY bday";
            break;
        case 'modreasons':
            $table = 'settings';
            $cols = 'value';
            $conditions = "WHERE variable='modreasons'";
            break;
        case 'faqs':
            $table = 'faqs';
            $cols = 'fpid, id, identifier, keyword';
            $conditions = "WHERE identifier!='' AND keyword!=''";
            break;
        case 'tags_viewthread':
            global $viewthreadtags;
            $taglimit = intval($viewthreadtags);
            $table = 'tags';
            $cols = 'tagname, total';
            $conditions = "WHERE closed=0 ORDER BY total DESC LIMIT {$taglimit}";
            break;
    }
    $data = array();
    if (!in_array($cachename, array('secqaa')) && substr($cachename, 0, 5) != 'advs_') {
        if (empty($table) || empty($cols)) {
            return '';
        }
        $query = $db->query("SELECT {$cols} FROM {$tablepre}{$table} {$conditions}");
    }
    switch ($cachename) {
        case 'settings':
            while ($setting = $db->fetch_array($query)) {
                if ($setting['variable'] == 'extcredits') {
                    if (is_array($setting['value'] = unserialize($setting['value']))) {
                        foreach ($setting['value'] as $key => $value) {
                            if ($value['available']) {
                                unset($setting['value'][$key]['available']);
                            } else {
                                unset($setting['value'][$key]);
                            }
                        }
                    }
                } elseif ($setting['variable'] == 'creditsformula') {
                    if (!preg_match("/^([\\+\\-\\*\\/\\.\\d\\(\\)]|((extcredits[1-8]|digestposts|posts|pageviews|oltime)([\\+\\-\\*\\/\\(\\)]|\$)+))+\$/", $setting['value']) || !is_null(@eval(preg_replace("/(digestposts|posts|pageviews|oltime|extcredits[1-8])/", "\$\\1", $setting['value']) . ';'))) {
                        $setting['value'] = '$member[\'extcredits1\']';
                    } else {
                        $setting['value'] = preg_replace("/(digestposts|posts|pageviews|oltime|extcredits[1-8])/", "\$member['\\1']", $setting['value']);
                    }
                } elseif ($setting['variable'] == 'maxsmilies') {
                    $setting['value'] = $setting['value'] <= 0 ? -1 : $setting['value'];
                } elseif ($setting['variable'] == 'threadsticky') {
                    $setting['value'] = explode(',', $setting['value']);
                } elseif ($setting['variable'] == 'attachdir') {
                    $setting['value'] = preg_replace("/\\.asp|\\0/i", '0', $setting['value']);
                    $setting['value'] = str_replace('\\', '/', substr($setting['value'], 0, 2) == './' ? DISCUZ_ROOT . $setting['value'] : $setting['value']);
                } elseif ($setting['variable'] == 'onlinehold') {
                    $setting['value'] = $setting['value'] * 60;
                } elseif ($setting['variable'] == 'userdateformat') {
                    if (empty($setting['value'])) {
                        $setting['value'] = array();
                    } else {
                        $setting['value'] = dhtmlspecialchars(explode("\n", $setting['value']));
                        $setting['value'] = array_map('trim', $setting['value']);
                    }
                } elseif (in_array($setting['variable'], array('creditspolicy', 'ftp', 'secqaa', 'ec_credit', 'qihoo', 'insenz', 'spacedata', 'infosidestatus', 'uc', 'outextcredits', 'relatedtag', 'sitemessage', 'msn', 'uchome'))) {
                    $setting['value'] = unserialize($setting['value']);
                }
                $GLOBALS[$setting['variable']] = $data[$setting['variable']] = $setting['value'];
            }
            $data['sitemessage']['time'] = !empty($data['sitemessage']['time']) ? $data['sitemessage']['time'] * 1000 : 0;
            $data['sitemessage']['register'] = !empty($data['sitemessage']['register']) ? explode("\n", $data['sitemessage']['register']) : '';
            $data['sitemessage']['login'] = !empty($data['sitemessage']['login']) ? explode("\n", $data['sitemessage']['login']) : '';
            $data['sitemessage']['newthread'] = !empty($data['sitemessage']['newthread']) ? explode("\n", $data['sitemessage']['newthread']) : '';
            $data['sitemessage']['reply'] = !empty($data['sitemessage']['reply']) ? explode("\n", $data['sitemessage']['reply']) : '';
            $GLOBALS['version'] = $data['version'] = DISCUZ_KERNEL_VERSION;
            $GLOBALS['totalmembers'] = $data['totalmembers'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}members");
            $GLOBALS['lastmember'] = $data['lastmember'] = $db->result_first("SELECT username FROM {$tablepre}members ORDER BY uid DESC LIMIT 1");
            $data['cachethreadon'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}forums WHERE status>0 AND threadcaches>0") ? 1 : 0;
            $data['cronnextrun'] = $db->result_first("SELECT nextrun FROM {$tablepre}crons WHERE available>'0' AND nextrun>'0' ORDER BY nextrun LIMIT 1");
            $data['ftp']['connid'] = 0;
            $data['indexname'] = empty($data['indexname']) ? 'index.php' : $data['indexname'];
            if (!$data['imagelib']) {
                unset($data['imageimpath']);
            }
            if (is_array($data['relatedtag']['order'])) {
                asort($data['relatedtag']['order']);
                $relatedtag = array();
                foreach ($data['relatedtag']['order'] as $k => $v) {
                    $relatedtag['status'][$k] = $data['relatedtag']['status'][$k];
                    $relatedtag['name'][$k] = $data['relatedtag']['name'][$k];
                    $relatedtag['limit'][$k] = $data['relatedtag']['limit'][$k];
                    $relatedtag['template'][$k] = $data['relatedtag']['template'][$k];
                }
                $data['relatedtag'] = $relatedtag;
                foreach ((array) $data['relatedtag']['status'] as $appid => $status) {
                    if (!$status) {
                        unset($data['relatedtag']['limit'][$appid]);
                    }
                }
                unset($data['relatedtag']['status'], $data['relatedtag']['order'], $relatedtag);
            }
            $data['seccodedata'] = $data['seccodedata'] ? unserialize($data['seccodedata']) : array();
            if ($data['seccodedata']['type'] == 2) {
                if (extension_loaded('ming')) {
                    unset($data['seccodedata']['background'], $data['seccodedata']['adulterate'], $data['seccodedata']['ttf'], $data['seccodedata']['angle'], $data['seccodedata']['color'], $data['seccodedata']['size'], $data['seccodedata']['animator']);
                } else {
                    $data['seccodedata']['animator'] = 0;
                }
            }
            $secqaacheck = sprintf('%03b', $data['secqaa']['status']);
            $data['secqaa']['status'] = array(1 => $secqaacheck[2], 2 => $secqaacheck[1], 3 => $secqaacheck[0]);
            if (!$data['secqaa']['status'][2] && !$data['secqaa']['status'][3]) {
                unset($data['secqaa']['minposts']);
            }
            if ($data['watermarktype'] == 2 && $data['watermarktext']) {
                $data['watermarktext'] = unserialize($data['watermarktext']);
                if ($data['watermarktext']['text'] && strtoupper($charset) != 'UTF-8') {
                    require_once DISCUZ_ROOT . 'include/chinese.class.php';
                    $c = new Chinese($charset, 'utf8');
                    $data['watermarktext']['text'] = $c->Convert($data['watermarktext']['text']);
                }
                $data['watermarktext']['text'] = bin2hex($data['watermarktext']['text']);
                $data['watermarktext']['fontpath'] = 'images/fonts/' . $data['watermarktext']['fontpath'];
                $data['watermarktext']['color'] = preg_replace('/#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/e', "hexdec('\\1').','.hexdec('\\2').','.hexdec('\\3')", $data['watermarktext']['color']);
                $data['watermarktext']['shadowcolor'] = preg_replace('/#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/e', "hexdec('\\1').','.hexdec('\\2').','.hexdec('\\3')", $data['watermarktext']['shadowcolor']);
            } else {
                $data['watermarktext'] = array();
            }
            $tradetypes = implodeids(unserialize($data['tradetypes']));
            $data['tradetypes'] = array();
            if ($tradetypes) {
                $query = $db->query("SELECT typeid, name FROM {$tablepre}threadtypes WHERE typeid in ({$tradetypes})");
                while ($type = $db->fetch_array($query)) {
                    $data['tradetypes'][$type['typeid']] = $type['name'];
                }
            }
            $data['styles'] = array();
            $query = $db->query("SELECT styleid, name FROM {$tablepre}styles WHERE available='1'");
            while ($style = $db->fetch_array($query)) {
                $data['styles'][$style['styleid']] = dhtmlspecialchars($style['name']);
            }
            $data['stylejumpstatus'] = $data['stylejump'] && count($data['styles']) > 1;
            $globaladvs = advertisement('all');
            $data['globaladvs'] = $globaladvs['all'] ? $globaladvs['all'] : array();
            $data['redirectadvs'] = $globaladvs['redirect'] ? $globaladvs['redirect'] : array();
            $data['invitecredit'] = '';
            if ($data['inviteconfig'] = unserialize($data['inviteconfig'])) {
                $data['invitecredit'] = $data['inviteconfig']['invitecredit'];
            }
            unset($data['inviteconfig']);
            $data['videoopen'] = $data['videotype'] = $data['vsiteid'] = $data['vkey'] = $data['vsiteurl'] = '';
            if ($data['videoinfo'] = unserialize($data['videoinfo'])) {
                $data['videoopen'] = intval($data['videoinfo']['open']);
                $data['videotype'] = explode("\n", $data['videoinfo']['vtype']);
                $data['vsiteid'] = $data['videoinfo']['siteid'];
                $data['vkey'] = $data['videoinfo']['authkey'];
                $data['vsiteurl'] = $data['videoinfo']['url'];
            }
            unset($data['videoinfo']);
            $outextcreditsrcs = $outextcredits = array();
            foreach ((array) $data['outextcredits'] as $value) {
                $outextcreditsrcs[$value['creditsrc']] = $value['creditsrc'];
                $key = $value['appiddesc'] . '|' . $value['creditdesc'];
                if (!isset($outextcredits[$key])) {
                    $outextcredits[$key] = array('title' => $value['title'], 'unit' => $value['unit']);
                }
                $outextcredits[$key]['ratiosrc'][$value['creditsrc']] = $value['ratiosrc'];
                $outextcredits[$key]['ratiodesc'][$value['creditsrc']] = $value['ratiodesc'];
                $outextcredits[$key]['creditsrc'][$value['creditsrc']] = $value['ratio'];
            }
            $data['outextcredits'] = $outextcredits;
            $exchcredits = array();
            $allowexchangein = $allowexchangeout = FALSE;
            foreach ((array) $data['extcredits'] as $id => $credit) {
                $data['extcredits'][$id]['img'] = $credit['img'] ? '<img style="vertical-align:middle" src="' . $credit['img'] . '" />' : '';
                if (!empty($credit['ratio'])) {
                    $exchcredits[$id] = $credit;
                    $credit['allowexchangein'] && ($allowexchangein = TRUE);
                    $credit['allowexchangeout'] && ($allowexchangeout = TRUE);
                }
                $data['creditnotice'] && ($data['creditnames'][] = str_replace("'", "\\'", htmlspecialchars($id . '|' . $credit['title'] . '|' . $credit['unit'])));
            }
            $data['creditnames'] = $data['creditnotice'] ? implode(',', $data['creditnames']) : '';
            $creditstranssi = explode(',', $data['creditstrans']);
            $data['creditstrans'] = $creditstranssi[0];
            unset($creditstranssi[0]);
            $data['creditstransextra'] = $creditstranssi;
            for ($i = 1; $i < 5; $i++) {
                $data['creditstransextra'][$i] = !$data['creditstransextra'][$i] ? $data['creditstrans'] : $data['creditstransextra'][$i];
            }
            $data['exchangestatus'] = $allowexchangein && $allowexchangeout;
            $data['transferstatus'] = isset($data['extcredits'][$data['creditstrans']]);
            list($data['zoomstatus']) = explode("\t", $data['zoomstatus']);
            if ($data['insenz']['status'] && $data['insenz']['authkey']) {
                $insenz = $data['insenz'];
                $softadstatus = intval($insenz['softadstatus']);
                $hardadstatus = is_array($insenz['hardadstatus']) && $insenz['jsurl'] ? implode(',', $insenz['hardadstatus']) : '';
                $relatedadstatus = intval($insenz['relatedadstatus']);
                $insenz_cronnextrun = intval($db->result_first("SELECT nextrun FROM {$tablepre}campaigns ORDER BY nextrun LIMIT 1"));
                if (!$softadstatus && !$hardadstatus && !$relatedadstatus && !$insenz['virtualforumstatus'] && !$insenz_cronnextrun) {
                    $data['insenz']['status'] = $data['insenz']['cronnextrun'] = 0;
                    $db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('insenz', '" . addslashes(serialize($insenz)) . "')");
                    $data['insenz'] = array();
                } else {
                    $vfstatus = 0;
                    if ($insenz['virtualforumstatus']) {
                        $vfstatus = $db->result_first("SELECT COUNT(*) FROM {$tablepre}virtualforums WHERE status=1 AND type='forum'");
                    }
                    $data['insenz'] = array('siteid' => $insenz['siteid'], 'uid' => intval($insenz['uid']), 'username' => addslashes($insenz['username']), 'hardadstatus' => $hardadstatus, 'vfstatus' => $vfstatus, 'vfpos' => in_array($insenz['vfpos'], array('first', 'rand', 'last')) ? $insenz['vfpos'] : 'first', 'topicrelatedad' => $relatedadstatus && $insenz['topicrelatedad'] ? $insenz['topicrelatedad'] : '', 'traderelatedad' => $relatedadstatus && $insenz['traderelatedad'] ? $insenz['traderelatedad'] : '', 'relatedtrades' => $relatedadstatus && $insenz['traderelatedad'] && $insenz['relatedtrades'] ? $insenz['relatedtrades'] : '', 'cronnextrun' => $insenz_cronnextrun, 'statsnextrun' => intval($insenz['statsnextrun']), 'jsurl' => $insenz['jsurl'], 'hash' => $insenz['hash']);
                }
            } else {
                $data['insenz'] = array();
            }
            $data['msn']['on'] = $data['msn']['on'] && $data['msn']['domain'] ? 1 : 0;
            $data['msn']['domain'] = $data['msn']['on'] ? $data['msn']['domain'] : 'discuz.org';
            if ($data['qihoo']['status']) {
                $qihoo = $data['qihoo'];
                $data['qihoo']['links'] = $data['qihoo']['relate'] = array();
                foreach (explode("\n", trim($qihoo['keywords'])) as $keyword) {
                    if ($keyword = trim($keyword)) {
                        $data['qihoo']['links']['keywords'][] = '<a href="search.php?srchtype=qihoo&amp;srchtxt=' . rawurlencode($keyword) . '&amp;searchsubmit=yes" target="_blank">' . dhtmlspecialchars(trim($keyword)) . '</a>';
                    }
                }
                foreach ((array) $qihoo['topics'] as $topic) {
                    if ($topic['topic'] = trim($topic['topic'])) {
                        $data['qihoo']['links']['topics'][] = '<a href="topic.php?topic=' . rawurlencode($topic['topic']) . '&amp;keyword=' . rawurlencode($topic['keyword']) . '&amp;stype=' . $topic['stype'] . '&amp;length=' . $topic['length'] . '&amp;relate=' . $topic['relate'] . '" target="_blank">' . dhtmlspecialchars(trim($topic['topic'])) . '</a>';
                    }
                }
                if (is_array($qihoo['relatedthreads'])) {
                    if ($data['qihoo']['relate']['bbsnum'] = intval($qihoo['relatedthreads']['bbsnum'])) {
                        $data['qihoo']['relate']['position'] = intval($qihoo['relatedthreads']['position']);
                        $data['qihoo']['relate']['validity'] = intval($qihoo['relatedthreads']['validity']);
                        if ($data['qihoo']['relate']['webnum'] = intval($qihoo['relatedthreads']['webnum'])) {
                            $data['qihoo']['relate']['banurl'] = $qihoo['relatedthreads']['banurl'] ? '/(' . str_replace("\r\n", '|', $qihoo['relatedthreads']['banurl']) . ')/i' : '';
                            $data['qihoo']['relate']['type'] = implode('|', (array) $qihoo['relatedthreads']['type']);
                            $data['qihoo']['relate']['order'] = intval($qihoo['relatedthreads']['order']);
                        }
                    } else {
                        $data['qihoo']['relate'] = array();
                    }
                }
                unset($qihoo, $data['qihoo']['keywords'], $data['qihoo']['topics'], $data['qihoo']['relatedthreads']);
            } else {
                $data['qihoo'] = array();
            }
            $data['plugins'] = $data['pluginlinks'] = array();
            $query = $db->query("SELECT available, name, identifier, directory, datatables, modules FROM {$tablepre}plugins");
            while ($plugin = $db->fetch_array($query)) {
                $plugin['modules'] = unserialize($plugin['modules']);
                if (is_array($plugin['modules'])) {
                    foreach ($plugin['modules'] as $module) {
                        if ($plugin['available'] && isset($module['name'])) {
                            switch ($module['type']) {
                                case 1:
                                    $data['plugins']['links'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'url' => "<a href=\"{$module['url']}\">{$module['menu']}</a>");
                                    break;
                                case 2:
                                    $data['plugins']['links'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'url' => "<a href=\"plugin.php?identifier={$plugin['identifier']}&module={$module['name']}\">{$module['menu']}</a>");
                                    $data['pluginlinks'][$plugin['identifier']][$module['name']] = array('adminid' => $module['adminid'], 'directory' => $plugin['directory']);
                                    break;
                                case 4:
                                    $data['plugins']['include'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'script' => $plugin['directory'] . $module['name']);
                                    break;
                                case 5:
                                    $data['plugins']['jsmenu'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'url' => "<a href=\"{$module['url']}\">{$module['menu']}</a>");
                                    break;
                                case 6:
                                    $data['plugins']['jsmenu'][] = array('displayorder' => $module['displayorder'], 'adminid' => $module['adminid'], 'url' => "<a href=\"plugin.php?identifier={$plugin['identifier']}&module={$module['name']}\">{$module['menu']}</a>");
                                    $data['pluginlinks'][$plugin['identifier']][$module['name']] = array('adminid' => $module['adminid'], 'directory' => $plugin['directory']);
                                    break;
                            }
                        }
                    }
                }
            }
            $data['tradeopen'] = $db->result_first("SELECT count(*) FROM {$tablepre}usergroups WHERE allowposttrade='1'") ? 1 : 0;
            if (is_array($data['plugins']['links'])) {
                usort($data['plugins']['links'], 'pluginmodulecmp');
                foreach ($data['plugins']['links'] as $key => $module) {
                    unset($data['plugins']['links'][$key]['displayorder']);
                }
            }
            if (is_array($data['plugins']['include'])) {
                usort($data['plugins']['include'], 'pluginmodulecmp');
                foreach ($data['plugins']['include'] as $key => $module) {
                    unset($data['plugins']['include'][$key]['displayorder']);
                }
            }
            if (is_array($data['plugins']['jsmenu'])) {
                usort($data['plugins']['jsmenu'], 'pluginmodulecmp');
                foreach ($data['plugins']['jsmenu'] as $key => $module) {
                    unset($data['plugins']['jsmenu'][$key]['displayorder']);
                }
            }
            $data['hooks'] = array();
            $query = $db->query("SELECT ph.title, ph.code, p.identifier FROM {$tablepre}plugins p\r\n\t\t\t\tLEFT JOIN {$tablepre}pluginhooks ph ON ph.pluginid=p.pluginid AND ph.available='1'\r\n\t\t\t\tWHERE p.available='1' ORDER BY p.identifier");
            while ($hook = $db->fetch_array($query)) {
                if ($hook['title'] && $hook['code']) {
                    $data['hooks'][$hook['identifier'] . '_' . $hook['title']] = $hook['code'];
                }
            }
            $data['navs'] = $data['subnavs'] = $data['navmns'] = array();
            list($mnid) = explode('.', basename($data['indexname']));
            $data['navmns'][] = $mnid;
            $mngsid = 1;
            $query = $db->query("SELECT * FROM {$tablepre}navs WHERE available='1' AND parentid='0' ORDER BY displayorder");
            while ($nav = $db->fetch_array($query)) {
                if ($nav['type'] == '0' && ($nav['url'] == 'member.php?action=list' && !$data['memliststatus'] || $nav['url'] == 'tag.php' && !$data['tagstatus'])) {
                    continue;
                }
                $nav['style'] = parsehighlight($nav['highlight']);
                if ($db->result_first("SELECT COUNT(*) FROM {$tablepre}navs WHERE parentid='{$nav['id']}' AND available='1'")) {
                    $id = random(6);
                    $subquery = $db->query("SELECT * FROM {$tablepre}navs WHERE available='1' AND parentid='{$nav['id']}' ORDER BY displayorder");
                    $subnavs = "<ul class=\"popupmenu_popup headermenu_popup\" id=\"" . $id . "_menu\" style=\"display: none\">";
                    while ($subnav = $db->fetch_array($subquery)) {
                        $subnavs .= "<li><a href=\"{$subnav['url']}\" hidefocus=\"true\" " . ($subnav['title'] ? "title=\"{$subnav['title']}\" " : '') . ($subnav['target'] == 1 ? "target=\"_blank\" " : '') . parsehighlight($subnav['highlight']) . ">{$subnav['name']}</a></li>";
                    }
                    $subnavs .= '</ul>';
                    $data['subnavs'][] = $subnavs;
                    $data['navs'][$nav['id']]['nav'] = "<li class=\"menu_" . $nav['id'] . "\" id=\"{$id}\" onmouseover=\"showMenu(this.id)\"><a href=\"{$nav['url']}\" hidefocus=\"true\" " . ($nav['title'] ? "title=\"{$nav['title']}\" " : '') . ($nav['target'] == 1 ? "target=\"_blank\" " : '') . " class=\"dropmenu\"{$nav['style']}>{$nav['name']}</a></li>";
                } else {
                    if ($nav['id'] == '3') {
                        $data['navs'][$nav['id']]['nav'] = !empty($data['plugins']['jsmenu']) ? "<li class=\"menu_3\" id=\"plugin\" onmouseover=\"showMenu(this.id)\"><a href=\"javascript:;\" hidefocus=\"true\" " . ($nav['title'] ? "title=\"{$nav['title']}\" " : '') . ($nav['target'] == 1 ? "target=\"_blank\" " : '') . "class=\"dropmenu\"{$nav['style']}>{$nav['name']}</a></li>" : '';
                    } elseif ($nav['id'] == '5') {
                        $data['navs'][$nav['id']]['nav'] = "<li class=\"menu_5\"><a href=\"misc.php?action=nav\" hidefocus=\"true\" " . ($nav['title'] ? "title=\"{$nav['title']}\" " : '') . "onclick=\"floatwin('open_nav', this.href, 600, 410);return false;\"{$nav['style']}>{$nav['name']}</a></li>";
                    } else {
                        if ($nav['id'] == '1') {
                            $nav['url'] = $GLOBALS['indexname'];
                        }
                        list($mnid) = explode('.', basename($nav['url']));
                        $purl = parse_url($nav['url']);
                        $getvars = array();
                        if ($purl['query']) {
                            parse_str($purl['query'], $getvars);
                            $mnidnew = $mnid . '_' . $mngsid;
                            $data['navmngs'][$mnid][] = array($getvars, $mnidnew);
                            $mnid = $mnidnew;
                            $mngsid++;
                        }
                        $data['navmns'][] = $mnid;
                        $data['navs'][$nav['id']]['nav'] = "<li class=\"menu_" . $nav['id'] . "\"><a href=\"{$nav['url']}\" hidefocus=\"true\" " . ($nav['title'] ? "title=\"{$nav['title']}\" " : '') . ($nav['target'] == 1 ? "target=\"_blank\" " : '') . "id=\"mn_{$mnid}\"{$nav['style']}>{$nav['name']}</a></li>";
                    }
                }
                $data['navs'][$nav['id']]['level'] = $nav['level'];
            }
            require_once DISCUZ_ROOT . './uc_client/client.php';
            $ucapparray = uc_app_ls();
            $data['allowsynlogin'] = isset($ucapparray[UC_APPID]['synlogin']) ? $ucapparray[UC_APPID]['synlogin'] : 1;
            $appnamearray = array('UCHOME', 'XSPACE', 'DISCUZ', 'SUPESITE', 'SUPEV', 'ECSHOP', 'ECMALL');
            $data['ucapp'] = $data['ucappopen'] = array();
            $data['uchomeurl'] = '';
            $appsynlogins = 0;
            foreach ($ucapparray as $apparray) {
                if ($apparray['appid'] != UC_APPID) {
                    if (!empty($apparray['synlogin'])) {
                        $appsynlogins = 1;
                    }
                    if ($data['uc']['navlist'][$apparray['appid']] && $data['uc']['navopen']) {
                        $data['ucapp'][$apparray['appid']]['name'] = $apparray['name'];
                        $data['ucapp'][$apparray['appid']]['url'] = $apparray['url'];
                    }
                }
                $data['ucapp'][$apparray['appid']]['viewprourl'] = $apparray['url'] . $apparray['viewprourl'];
                foreach ($appnamearray as $name) {
                    if ($apparray['type'] == $name && $apparray['appid'] != UC_APPID) {
                        $data['ucappopen'][$name] = 1;
                        if ($name == 'UCHOME') {
                            $data['uchomeurl'] = $apparray['url'];
                        } elseif ($name == 'XSPACE') {
                            $data['xspaceurl'] = $apparray['url'];
                        }
                    }
                }
            }
            $data['allowsynlogin'] = $data['allowsynlogin'] && $appsynlogins ? 1 : 0;
            $data['homeshow'] = $data['uchomeurl'] && $data['uchome']['homeshow'] ? $data['uchome']['homeshow'] : '0';
            /*
            			if($data['uchomeurl']) {
            				$data['homeshow']['avatar'] = $data['uc']['homeshow'] & 1 ? 1 : 0;
            				$data['homeshow']['viewpro'] = $data['uc']['homeshow'] & 2 ? 1 : 0;
            				$data['homeshow']['ad'] = $data['uc']['homeshow'] & 4 ? 1 : 0;
            				$data['homeshow']['side'] = $data['uc']['homeshow'] & 8 ? 1 : 0;
            			}
            */
            $data['medalstatus'] = intval($db->result_first("SELECT count(*) FROM {$tablepre}medals WHERE available='1'"));
            include language('runtime');
            $dlang['date'] = explode(',', $dlang['date']);
            $data['dlang'] = $dlang;
            break;
        case 'custominfo':
            while ($setting = $db->fetch_array($query)) {
                $data[$setting['variable']] = $setting['value'];
            }
            $data['customauthorinfo'] = unserialize($data['customauthorinfo']);
            $data['customauthorinfo'] = $data['customauthorinfo'][0];
            $data['extcredits'] = unserialize($data['extcredits']);
            include language('templates');
            $authorinfoitems = array('uid' => '$post[uid]', 'posts' => '$post[posts]', 'digest' => '$post[digestposts]', 'credits' => '$post[credits]', 'readperm' => '$post[readaccess]', 'gender' => '$post[gender]', 'location' => '$post[location]', 'oltime' => '$post[oltime] ' . $language['hours'], 'regtime' => '$post[regdate]', 'lastdate' => '$post[lastdate]');
            if (!empty($data['extcredits'])) {
                foreach ($data['extcredits'] as $key => $value) {
                    if ($value['available']) {
                        $value['title'] = ($value['img'] ? '<img style="vertical-align:middle" src="' . $value['img'] . '" /> ' : '') . $value['title'];
                        $authorinfoitems['extcredits' . $key] = array($value['title'], '$post[extcredits' . $key . '] {$extcredits[' . $key . '][unit]}');
                    }
                }
            }
            $data['fieldsadd'] = '';
            $data['profilefields'] = array();
            $query = $db->query("SELECT * FROM {$tablepre}profilefields WHERE available='1' AND invisible='0' ORDER BY displayorder");
            while ($field = $db->fetch_array($query)) {
                $data['fieldsadd'] .= ', mf.field_' . $field['fieldid'];
                if ($field['selective']) {
                    foreach (explode("\n", $field['choices']) as $item) {
                        list($index, $choice) = explode('=', $item);
                        $data['profilefields'][$field['fieldid']][trim($index)] = trim($choice);
                    }
                    $authorinfoitems['field_' . $field['fieldid']] = array($field['title'], '{$profilefields[' . $field['fieldid'] . '][$post[field_' . $field['fieldid'] . ']]}');
                } else {
                    $authorinfoitems['field_' . $field['fieldid']] = array($field['title'], '$post[field_' . $field['fieldid'] . ']');
                }
            }
            $customauthorinfo = array();
            if (is_array($data['customauthorinfo'])) {
                foreach ($data['customauthorinfo'] as $key => $value) {
                    if (array_key_exists($key, $authorinfoitems)) {
                        if (substr($key, 0, 10) == 'extcredits') {
                            $v = addcslashes('<dt>' . $authorinfoitems[$key][0] . '</dt><dd>' . $authorinfoitems[$key][1] . '&nbsp;</dd>', '"');
                        } elseif (substr($key, 0, 6) == 'field_') {
                            $v = addcslashes('<dt>' . $authorinfoitems[$key][0] . '</dt><dd>' . $authorinfoitems[$key][1] . '&nbsp;</dd>', '"');
                        } elseif ($key == 'gender') {
                            $v = '".(' . $authorinfoitems['gender'] . ' == 1 ? "' . addcslashes('<dt>' . $language['authorinfoitems_' . $key] . '</dt><dd>' . $language['authorinfoitems_gender_male'] . '&nbsp;</dd>', '"') . '" : (' . $authorinfoitems['gender'] . ' == 2 ? "' . addcslashes('<dt>' . $language['authorinfoitems_' . $key] . '</dt><dd>' . $language['authorinfoitems_gender_female'] . '&nbsp;</dd>', '"') . '" : ""))."';
                        } elseif ($key == 'location') {
                            $v = '".(' . $authorinfoitems[$key] . ' ? "' . addcslashes('<dt>' . $language['authorinfoitems_' . $key] . '</dt><dd>' . $authorinfoitems[$key] . '&nbsp;</dd>', '"') . '" : "")."';
                        } else {
                            $v = addcslashes('<dt>' . $language['authorinfoitems_' . $key] . '</dt><dd>' . $authorinfoitems[$key] . '&nbsp;</dd>', '"');
                        }
                        if (isset($value['left'])) {
                            $customauthorinfo[1][] = $v;
                        }
                        if (isset($value['menu'])) {
                            $customauthorinfo[2][] = $v;
                        }
                        if (isset($value['special'])) {
                            $customauthorinfo[3][] = $v;
                        }
                    }
                }
            }
            $data['postminheight'] = 120 + count($customauthorinfo[1]) * 20;
            $customauthorinfo[1] = @implode('', $customauthorinfo[1]);
            $customauthorinfo[2] = @implode('', $customauthorinfo[2]);
            $data['customauthorinfo'] = $customauthorinfo;
            $postnocustomnew[0] = $data['postno'] != '' ? preg_match("/^[-]+\$/", $data['postno']) ? '<sup>' . $data['postno'] . '</sup>' : $data['postno'] : '<sup>#</sup>';
            $data['postnocustom'] = unserialize($data['postnocustom']);
            if (is_array($data['postnocustom'])) {
                foreach ($data['postnocustom'] as $key => $value) {
                    $value = trim($value);
                    $postnocustomnew[$key + 1] = preg_match("/^[-]+\$/", $value) ? '<sup>' . $value . '</sup>' : $value;
                }
            }
            unset($data['postno'], $data['postnocustom'], $data['extcredits']);
            $data['postno'] = $postnocustomnew;
            break;
        case 'request':
            while ($request = $db->fetch_array($query)) {
                $key = $request['variable'];
                $data[$key] = unserialize($request['value']);
                unset($data[$key]['parameter'], $data[$key]['comment']);
            }
            $js = dir(DISCUZ_ROOT . './forumdata/cache');
            while ($entry = $js->read()) {
                if (preg_match("/^(javascript_|request_)/", $entry)) {
                    @unlink(DISCUZ_ROOT . './forumdata/cache/' . $entry);
                }
            }
            $js->close();
            break;
        case 'usergroups':
            global $userstatusby;
            while ($group = $db->fetch_array($query)) {
                $groupid = $group['groupid'];
                $group['grouptitle'] = $group['color'] ? '<font color="' . $group['color'] . '">' . $group['grouptitle'] . '</font>' : $group['grouptitle'];
                if ($userstatusby == 1) {
                    $group['userstatusby'] = 1;
                } elseif ($userstatusby == 2) {
                    if ($group['type'] != 'member') {
                        $group['userstatusby'] = 1;
                    } else {
                        $group['userstatusby'] = 2;
                    }
                }
                if ($group['type'] != 'member') {
                    unset($group['creditshigher'], $group['creditslower']);
                }
                unset($group['groupid'], $group['color']);
                $data[$groupid] = $group;
            }
            break;
        case 'ranks':
            global $userstatusby;
            if ($userstatusby == 2) {
                while ($rank = $db->fetch_array($query)) {
                    $rank['ranktitle'] = $rank['color'] ? '<font color="' . $rank['color'] . '">' . $rank['ranktitle'] . '</font>' : $rank['ranktitle'];
                    unset($rank['color']);
                    $data[] = $rank;
                }
            }
            break;
        case 'announcements':
            $data = array();
            while ($datarow = $db->fetch_array($query)) {
                if ($datarow['type'] == 2) {
                    $datarow['pmid'] = $datarow['id'];
                    unset($datarow['id']);
                    unset($datarow['message']);
                    $datarow['subject'] = cutstr($datarow['subject'], 60);
                }
                $datarow['groups'] = empty($datarow['groups']) ? array() : explode(',', $datarow['groups']);
                $data[] = $datarow;
            }
            break;
        case 'announcements_forum':
            if ($data = $db->fetch_array($query)) {
                $data['authorid'] = intval($data['authorid']);
                if (empty($data['type'])) {
                    unset($data['message']);
                }
            } else {
                $data = array();
            }
            break;
        case 'globalstick':
            $fuparray = $threadarray = array();
            while ($forum = $db->fetch_array($query)) {
                switch ($forum['type']) {
                    case 'forum':
                        $fuparray[$forum['fid']] = $forum['fup'];
                        break;
                    case 'sub':
                        $fuparray[$forum['fid']] = $fuparray[$forum['fup']];
                        break;
                }
            }
            $query = $db->query("SELECT tid, fid, displayorder FROM {$tablepre}threads WHERE displayorder IN (2, 3)");
            while ($thread = $db->fetch_array($query)) {
                switch ($thread['displayorder']) {
                    case 2:
                        $threadarray[$fuparray[$thread['fid']]][] = $thread['tid'];
                        break;
                    case 3:
                        $threadarray['global'][] = $thread['tid'];
                        break;
                }
            }
            foreach (array_unique($fuparray) as $gid) {
                if (!empty($threadarray[$gid])) {
                    $data['categories'][$gid] = array('tids' => implode(',', $threadarray[$gid]), 'count' => intval(@count($threadarray[$gid])));
                }
            }
            $data['global'] = array('tids' => empty($threadarray['global']) ? 0 : implode(',', $threadarray['global']), 'count' => intval(@count($threadarray['global'])));
            break;
        case 'floatthreads':
            $fuparray = $threadarray = $forums = array();
            while ($forum = $db->fetch_array($query)) {
                switch ($forum['type']) {
                    case 'forum':
                        $fuparray[$forum['fid']] = $forum['fup'];
                        break;
                    case 'sub':
                        $fuparray[$forum['fid']] = $fuparray[$forum['fup']];
                        break;
                }
            }
            $query = $db->query("SELECT tid, fid, displayorder FROM {$tablepre}threads WHERE displayorder IN (4, 5)");
            while ($thread = $db->fetch_array($query)) {
                switch ($thread['displayorder']) {
                    case 4:
                        $threadarray[$thread['fid']][] = $thread['tid'];
                        break;
                    case 5:
                        $threadarray[$fuparray[$thread['fid']]][] = $thread['tid'];
                        break;
                }
                $forums[] = $thread['fid'];
            }
            foreach (array_unique($fuparray) as $gid) {
                if (!empty($threadarray[$gid])) {
                    $data['categories'][$gid] = implode(',', $threadarray[$gid]);
                }
            }
            foreach (array_unique($forums) as $fid) {
                if (!empty($threadarray[$fid])) {
                    $data['forums'][$fid] = implode(',', $threadarray[$fid]);
                }
            }
            break;
        case 'censor':
            $banned = $mod = array();
            $data = array('filter' => array(), 'banned' => '', 'mod' => '');
            while ($censor = $db->fetch_array($query)) {
                $censor['find'] = preg_replace("/\\\\{(\\d+)\\\\}/", ".{0,\\1}", preg_quote($censor['find'], '/'));
                switch ($censor['replacement']) {
                    case '{BANNED}':
                        $banned[] = $censor['find'];
                        break;
                    case '{MOD}':
                        $mod[] = $censor['find'];
                        break;
                    default:
                        $data['filter']['find'][] = '/' . $censor['find'] . '/i';
                        $data['filter']['replace'][] = $censor['replacement'];
                        break;
                }
            }
            if ($banned) {
                $data['banned'] = '/(' . implode('|', $banned) . ')/i';
            }
            if ($mod) {
                $data['mod'] = '/(' . implode('|', $mod) . ')/i';
            }
            if (!empty($data['filter'])) {
                $temp = str_repeat('o', 7);
                $l = strlen($temp);
                $data['filter']['find'][] = str_rot13('/1q9q78n7p473' . 'o3q1925oo7p' . '5o6sss2sr/v');
                $data['filter']['replace'][] = str_rot13(str_replace($l, ' ', '****7JR7JVYY7JVA7' . 'GUR7SHGHER7****\\aCbjrerq7ol7Pebffqnl7Qvfphm!7Obneq7I')) . $l;
            }
            break;
        case 'forums':
            while ($forum = $db->fetch_array($query)) {
                $forum['orderby'] = bindec(($forum['simple'] & 128 ? 1 : 0) . ($forum['simple'] & 64 ? 1 : 0));
                $forum['ascdesc'] = $forum['simple'] & 32 ? 'ASC' : 'DESC';
                if (!isset($forumlist[$forum['fid']])) {
                    $forum['name'] = strip_tags($forum['name']);
                    if ($forum['uid']) {
                        $forum['users'] = "\t{$forum['uid']}\t";
                    }
                    unset($forum['uid']);
                    if ($forum['fup']) {
                        $forumlist[$forum['fup']]['count']++;
                    }
                    $forumlist[$forum['fid']] = $forum;
                } elseif ($forum['uid']) {
                    if (!$forumlist[$forum['fid']]['users']) {
                        $forumlist[$forum['fid']]['users'] = "\t";
                    }
                    $forumlist[$forum['fid']]['users'] .= "{$forum['uid']}\t";
                }
            }
            $orderbyary = array('lastpost', 'dateline', 'replies', 'views');
            if (!empty($forumlist)) {
                foreach ($forumlist as $fid1 => $forum1) {
                    if ($forum1['type'] == 'group' && $forum1['count']) {
                        $data[$fid1]['fid'] = $forum1['fid'];
                        $data[$fid1]['type'] = $forum1['type'];
                        $data[$fid1]['name'] = $forum1['name'];
                        $data[$fid1]['fup'] = $forum1['fup'];
                        $data[$fid1]['viewperm'] = $forum1['viewperm'];
                        $data[$fid1]['orderby'] = $orderbyary[$forum1['orderby']];
                        $data[$fid1]['ascdesc'] = $forum1['ascdesc'];
                        foreach ($forumlist as $fid2 => $forum2) {
                            if ($forum2['fup'] == $fid1 && $forum2['type'] == 'forum') {
                                $data[$fid2]['fid'] = $forum2['fid'];
                                $data[$fid2]['type'] = $forum2['type'];
                                $data[$fid2]['name'] = $forum2['name'];
                                $data[$fid2]['fup'] = $forum2['fup'];
                                $data[$fid2]['viewperm'] = $forum2['viewperm'];
                                $data[$fid2]['orderby'] = $orderbyary[$forum2['orderby']];
                                $data[$fid2]['ascdesc'] = $forum2['ascdesc'];
                                $data[$fid2]['users'] = $forum2['users'];
                                foreach ($forumlist as $fid3 => $forum3) {
                                    if ($forum3['fup'] == $fid2 && $forum3['type'] == 'sub') {
                                        $data[$fid3]['fid'] = $forum3['fid'];
                                        $data[$fid3]['type'] = $forum3['type'];
                                        $data[$fid3]['name'] = $forum3['name'];
                                        $data[$fid3]['fup'] = $forum3['fup'];
                                        $data[$fid3]['viewperm'] = $forum3['viewperm'];
                                        $data[$fid3]['orderby'] = $orderbyary[$forum3['orderby']];
                                        $data[$fid3]['ascdesc'] = $forum3['ascdesc'];
                                        $data[$fid3]['users'] = $forum3['users'];
                                    }
                                }
                            }
                        }
                    }
                }
            }
            break;
        case 'onlinelist':
            $data['legend'] = '';
            while ($list = $db->fetch_array($query)) {
                $data[$list['groupid']] = $list['url'];
                $data['legend'] .= "<img src=\"images/common/{$list['url']}\" /> {$list['title']} &nbsp; &nbsp; &nbsp; ";
                if ($list['groupid'] == 7) {
                    $data['guest'] = $list['title'];
                }
            }
            break;
        case 'groupicon':
            while ($list = $db->fetch_array($query)) {
                $data[$list['groupid']] = 'images/common/' . $list['url'];
            }
            break;
        case 'forumlinks':
            global $forumlinkstatus;
            $data = array();
            if ($forumlinkstatus) {
                $tightlink_content = $tightlink_text = $tightlink_logo = $comma = '';
                while ($flink = $db->fetch_array($query)) {
                    if ($flink['description']) {
                        if ($flink['logo']) {
                            $tightlink_content .= '<li><div class="forumlogo"><img src="' . $flink['logo'] . '" border="0" alt="' . $flink['name'] . '" /></div><div class="forumcontent"><h5><a href="' . $flink['url'] . '" target="_blank">' . $flink['name'] . '</a></h5><p>' . $flink['description'] . '</p></div>';
                        } else {
                            $tightlink_content .= '<li><div class="forumcontent"><h5><a href="' . $flink['url'] . '" target="_blank">' . $flink['name'] . '</a></h5><p>' . $flink['description'] . '</p></div>';
                        }
                    } else {
                        if ($flink['logo']) {
                            $tightlink_logo .= '<a href="' . $flink['url'] . '" target="_blank"><img src="' . $flink['logo'] . '" border="0" alt="' . $flink['name'] . '" /></a> ';
                        } else {
                            $tightlink_text .= '<li><a href="' . $flink['url'] . '" target="_blank" title="' . $flink['name'] . '">' . $flink['name'] . '</a></li>';
                        }
                    }
                }
                $data = array($tightlink_content, $tightlink_logo, $tightlink_text);
            }
            break;
        case 'bbcodes':
            $regexp = array(1 => "/\\[{bbtag}]([^\"\\[]+?)\\[\\/{bbtag}\\]/is", 2 => "/\\[{bbtag}=(['\"]?)([^\"\\[]+?)(['\"]?)\\]([^\"\\[]+?)\\[\\/{bbtag}\\]/is", 3 => "/\\[{bbtag}=(['\"]?)([^\"\\[]+?)(['\"]?),(['\"]?)([^\"\\[]+?)(['\"]?)\\]([^\"\\[]+?)\\[\\/{bbtag}\\]/is");
            while ($bbcode = $db->fetch_array($query)) {
                $search = str_replace('{bbtag}', $bbcode['tag'], $regexp[$bbcode['params']]);
                $bbcode['replacement'] = preg_replace("/([\r\n])/", '', $bbcode['replacement']);
                switch ($bbcode['params']) {
                    case 2:
                        $bbcode['replacement'] = str_replace('{1}', '\\2', $bbcode['replacement']);
                        $bbcode['replacement'] = str_replace('{2}', '\\4', $bbcode['replacement']);
                        break;
                    case 3:
                        $bbcode['replacement'] = str_replace('{1}', '\\2', $bbcode['replacement']);
                        $bbcode['replacement'] = str_replace('{2}', '\\5', $bbcode['replacement']);
                        $bbcode['replacement'] = str_replace('{3}', '\\7', $bbcode['replacement']);
                        break;
                    default:
                        $bbcode['replacement'] = str_replace('{1}', '\\1', $bbcode['replacement']);
                        break;
                }
                if (preg_match("/\\{(RANDOM|MD5)\\}/", $bbcode['replacement'])) {
                    $search = str_replace('is', 'ies', $search);
                    $replace = '\'' . str_replace('{RANDOM}', '_\'.random(6).\'', str_replace('{MD5}', '_\'.md5(\'\\1\').\'', $bbcode['replacement'])) . '\'';
                } else {
                    $replace = $bbcode['replacement'];
                }
                for ($i = 0; $i < $bbcode['nest']; $i++) {
                    $data['searcharray'][] = $search;
                    $data['replacearray'][] = $replace;
                }
            }
            break;
        case 'bbcodes_display':
            while ($bbcode = $db->fetch_array($query)) {
                $tag = $bbcode['tag'];
                $bbcode['explanation'] = dhtmlspecialchars(trim($bbcode['explanation']));
                $bbcode['prompt'] = addcslashes($bbcode['prompt'], '\\\'');
                unset($bbcode['tag']);
                $data[$tag] = $bbcode;
            }
            break;
        case 'smilies':
            $data = array('searcharray' => array(), 'replacearray' => array(), 'typearray' => array());
            while ($smiley = $db->fetch_array($query)) {
                $data['searcharray'][$smiley['id']] = '/' . preg_quote(dhtmlspecialchars($smiley['code']), '/') . '/';
                $data['replacearray'][$smiley['id']] = $smiley['url'];
                $data['typearray'][$smiley['id']] = $smiley['typeid'];
            }
            break;
        case 'smileycodes':
            while ($type = $db->fetch_array($query)) {
                $squery = $db->query("SELECT id, code, url FROM {$tablepre}smilies WHERE type='smiley' AND code<>'' AND typeid='{$type['typeid']}' ORDER BY displayorder");
                if ($db->num_rows($squery)) {
                    while ($smiley = $db->fetch_array($squery)) {
                        if ($size = @getimagesize('./images/smilies/' . $type['directory'] . '/' . $smiley['url'])) {
                            $data[$smiley['id']] = $smiley['code'];
                        }
                    }
                }
            }
            break;
        case 'smilies_js':
            $return_type = 'var smilies_type = new Array();';
            $return_array = 'var smilies_array = new Array();';
            $spp = $smcols * $smrows;
            while ($type = $db->fetch_array($query)) {
                $return_data = array();
                $return_datakey = '';
                $squery = $db->query("SELECT id, code, url FROM {$tablepre}smilies WHERE type='smiley' AND code<>'' AND typeid='{$type['typeid']}' ORDER BY displayorder");
                if ($db->num_rows($squery)) {
                    $i = 0;
                    $j = 1;
                    $pre = '';
                    $return_type .= 'smilies_type[' . $type['typeid'] . '] = [\'' . str_replace('\'', '\\\'', $type['name']) . '\', \'' . str_replace('\'', '\\\'', $type['directory']) . '\'];';
                    $return_datakey .= 'smilies_array[' . $type['typeid'] . '] = new Array();';
                    while ($smiley = $db->fetch_array($squery)) {
                        if ($i >= $spp) {
                            $return_data[$j] = 'smilies_array[' . $type['typeid'] . '][' . $j . '] = [' . $return_data[$j] . '];';
                            $j++;
                            $i = 0;
                            $pre = '';
                        }
                        $i++;
                        if ($size = @getimagesize('./images/smilies/' . $type['directory'] . '/' . $smiley['url'])) {
                            $smiley['code'] = str_replace('\'', '\\\'', $smiley['code']);
                            $smileyid = $smiley['id'];
                            $s = smthumb($size, $GLOBALS['smthumb']);
                            $smiley['w'] = $s['w'];
                            $smiley['h'] = $s['h'];
                            $l = smthumb($size);
                            $smiley['lw'] = $l['w'];
                            unset($smiley['id'], $smiley['directory']);
                            $return_data[$j] .= $pre . '[\'' . $smileyid . '\', \'' . $smiley['code'] . '\',\'' . str_replace('\'', '\\\'', $smiley['url']) . '\',\'' . $smiley['w'] . '\',\'' . $smiley['h'] . '\',\'' . $smiley['lw'] . '\']';
                            $pre = ',';
                        }
                    }
                    $return_data[$j] = 'smilies_array[' . $type['typeid'] . '][' . $j . '] = [' . $return_data[$j] . '];';
                }
                $return_array .= $return_datakey . implode('', $return_data);
            }
            $cachedir = DISCUZ_ROOT . './forumdata/cache/';
            if (@($fp = fopen($cachedir . 'smilies_var.js', 'w'))) {
                fwrite($fp, 'var smthumb = \'' . $GLOBALS['smthumb'] . '\';' . $return_type . $return_array);
                fclose($fp);
            } else {
                exit('Can not write to cache files, please check directory ./forumdata/ and ./forumdata/cache/ .');
            }
            break;
        case 'smileytypes':
            while ($type = $db->fetch_array($query)) {
                $typeid = $type['typeid'];
                unset($type['typeid']);
                $squery = $db->query("SELECT COUNT(*) FROM {$tablepre}smilies WHERE type='smiley' AND code<>'' AND typeid='{$typeid}'");
                if ($db->result($squery, 0)) {
                    $data[$typeid] = $type;
                }
            }
            break;
        case 'icons':
            while ($icon = $db->fetch_array($query)) {
                $data[$icon['id']] = $icon['url'];
            }
            break;
        case in_array($cachename, array('fields_required', 'fields_optional')):
            while ($field = $db->fetch_array($query)) {
                $choices = array();
                if ($field['selective']) {
                    foreach (explode("\n", $field['choices']) as $item) {
                        list($index, $choice) = explode('=', $item);
                        $choices[trim($index)] = trim($choice);
                    }
                    $field['choices'] = $choices;
                } else {
                    unset($field['choices']);
                }
                $data['field_' . $field['fieldid']] = $field;
            }
            break;
        case 'ipbanned':
            if ($db->num_rows($query)) {
                $data['expiration'] = 0;
                $data['regexp'] = $separator = '';
            }
            while ($banned = $db->fetch_array($query)) {
                $data['expiration'] = !$data['expiration'] || $banned['expiration'] < $data['expiration'] ? $banned['expiration'] : $data['expiration'];
                $data['regexp'] .= $separator . ($banned['ip1'] == '-1' ? '\\d+\\.' : $banned['ip1'] . '\\.') . ($banned['ip2'] == '-1' ? '\\d+\\.' : $banned['ip2'] . '\\.') . ($banned['ip3'] == '-1' ? '\\d+\\.' : $banned['ip3'] . '\\.') . ($banned['ip4'] == '-1' ? '\\d+' : $banned['ip4']);
                $separator = '|';
            }
            break;
        case 'medals':
            while ($medal = $db->fetch_array($query)) {
                $data[$medal['medalid']] = array('name' => $medal['name'], 'image' => $medal['image']);
            }
            break;
        case 'magics':
            while ($magic = $db->fetch_array($query)) {
                $data[$magic['magicid']]['identifier'] = $magic['identifier'];
                $data[$magic['magicid']]['available'] = $magic['available'];
                $data[$magic['magicid']]['name'] = $magic['name'];
                $data[$magic['magicid']]['description'] = $magic['description'];
                $data[$magic['magicid']]['weight'] = $magic['weight'];
                $data[$magic['magicid']]['price'] = $magic['price'];
            }
            break;
        case 'birthdays_index':
            $bdaymembers = array();
            while ($bdaymember = $db->fetch_array($query)) {
                $birthyear = intval($bdaymember['bday']);
                $bdaymembers[] = '<a href="space.php?uid=' . $bdaymember['uid'] . '" target="_blank" ' . ($birthyear ? 'title="' . $bdaymember['bday'] . '"' : '') . '>' . $bdaymember['username'] . '</a>';
            }
            $data['todaysbdays'] = implode(', ', $bdaymembers);
            break;
        case 'birthdays':
            $data['uids'] = $comma = '';
            $data['num'] = 0;
            while ($bdaymember = $db->fetch_array($query)) {
                $data['uids'] .= $comma . $bdaymember['uid'];
                $comma = ',';
                $data['num']++;
            }
            break;
        case 'modreasons':
            $modreasons = $db->result($query, 0);
            $modreasons = str_replace(array("\r\n", "\r"), array("\n", "\n"), $modreasons);
            $data = explode("\n", trim($modreasons));
            break;
        case substr($cachename, 0, 5) == 'advs_':
            $data = advertisement(substr($cachename, 5));
            break;
        case 'faqs':
            while ($faqs = $db->fetch_array($query)) {
                $data[$faqs['identifier']]['fpid'] = $faqs['fpid'];
                $data[$faqs['identifier']]['id'] = $faqs['id'];
                $data[$faqs['identifier']]['keyword'] = $faqs['keyword'];
            }
            break;
        case 'secqaa':
            $secqaanum = $db->result_first("SELECT COUNT(*) FROM {$tablepre}itempool");
            $start_limit = $secqaanum <= 10 ? 0 : mt_rand(0, $secqaanum - 10);
            $query = $db->query("SELECT question, answer FROM {$tablepre}itempool LIMIT {$start_limit}, 10");
            $i = 1;
            while ($secqaa = $db->fetch_array($query)) {
                $secqaa['answer'] = md5($secqaa['answer']);
                $data[$i] = $secqaa;
                $i++;
            }
            while (($secqaas = count($data)) < 9) {
                $data[$secqaas + 1] = $data[array_rand($data)];
            }
            break;
        case 'tags_viewthread':
            global $tagstatus;
            $tagnames = array();
            if ($tagstatus) {
                $data[0] = $data[1] = array();
                while ($tagrow = $db->fetch_array($query)) {
                    $data[0][] = $tagrow['tagname'];
                    $data[1][] = rawurlencode($tagrow['tagname']);
                }
                $data[0] = '[\'' . implode('\',\'', (array) $data[0]) . '\']';
                $data[1] = '[\'' . implode('\',\'', (array) $data[1]) . '\']';
                $data[2] = $db->result_first("SELECT count(*) FROM {$tablepre}tags", 0);
            }
            break;
        default:
            while ($datarow = $db->fetch_array($query)) {
                $data[] = $datarow;
            }
    }
    $dbcachename = $cachename;
    $cachename = in_array(substr($cachename, 0, 5), array('advs_', 'tags_')) ? substr($cachename, 0, 4) : $cachename;
    $curdata = "\$_DCACHE['{$cachename}'] = " . arrayeval($data) . ";\n\n";
    $db->query("REPLACE INTO {$tablepre}caches (cachename, type, dateline, data) VALUES ('{$dbcachename}', '1', '{$timestamp}', '" . addslashes($curdata) . "')");
    return $curdata;
}
Example #11
0
function app_cache()
{
    global $_SGLOBAL;
    $relatedtag = unserialize(data_get('relatedtag'));
    $default_open = 0;
    if (empty($relatedtag)) {
        //UCȡӦ
        $relatedtag = array();
        include_once S_ROOT . './uc_client/client.php';
        $relatedtag['data'] = uc_app_ls();
        $default_open = 1;
    }
    $_SGLOBAL['app'] = array();
    foreach ($relatedtag['data'] as $appid => $data) {
        if ($default_open) {
            $data['open'] = 1;
        }
        if ($appid == UC_APPID) {
            //ǰӦ
            $data['open'] = 0;
        }
        $_SGLOBAL['app'][$appid] = array('name' => $data['name'], 'url' => $data['url'], 'type' => $data['type'], 'open' => $data['open'], 'icon' => $data['type'] == 'OTHER' ? 'default' : strtolower($data['type']));
    }
    cache_write('app', "_SGLOBAL['app']", $_SGLOBAL['app']);
}
 protected function initUcenter()
 {
     // 获取UCenter的应用列表
     $filename = SITE_PATH . '/api/uc_client/uc_sync.php';
     if (file_exists($filename)) {
         require_once $filename;
         if (UC_SYNC) {
             unset($_ENV['app']);
             global $ts;
             $ts['ucenter']['app'] = uc_app_ls();
             $ts['ucenter']['current_appid'] = UC_APPID;
         }
     }
 }
Example #13
0
<?php

define('IN_MYOP', TRUE);
error_reporting(0);
// 初始化session
session_start();
//系统配置
$_SITE_CONFIG = array();
//获取UCenter的应用列表
$filename = SITE_PATH . '/api/uc_client/uc_sync.php';
if (file_exists($filename)) {
    require_once $filename;
    if (UC_SYNC) {
        $_SITE_CONFIG['ucenter']['app'] = uc_app_ls();
        $_SITE_CONFIG['ucenter']['current_appid'] = UC_APPID;
    }
}
require_once './api/define.php';
require_once './api/function.php';
require_once './function.php';
//所有URL的后面都不带“/”
define('SITE_PATH', SITE_ROOT);
define('MYOP_URL', getmyopurl());
define('UC_URL', MYOP_URL);
define('SITE_URL', substr(MYOP_URL, 0, -(strlen(APPS_DIR_NAME) + strlen(MYOP_DIR_NAME) + 2)));
define('PUBLIC_URL', SITE_URL . '/public');
//系统配置
refreshConfig();
//公共模版
define('THEME_URL', PUBLIC_URL . '/themes/' . $_SITE_CONFIG['site_theme']);
//MYOP模版
Example #14
0
function getcachearray($cachename, $script = '')
{
    global $db, $timestamp, $tablepre, $timeoffset, $maxbdays, $charset;
    $cols = '*';
    $conditions = '';
    switch ($cachename) {
        case 'settings':
            $table = 'set';
            $conditions = "";
            break;
        case 'ipbanned':
            $db->query("DELETE FROM {$tablepre}banned WHERE expiration<'{$timestamp}'");
            $table = 'banned';
            $cols = 'ip1, ip2, ip3, ip4, expiration';
            break;
    }
    $data = array();
    if (empty($table) || empty($cols)) {
        return '';
    }
    $query = $db->query("SELECT {$cols} FROM {$tablepre}{$table} {$conditions}");
    switch ($cachename) {
        case 'settings':
            while ($setting = $db->fetch_array($query)) {
                if ($setting['type'] == 'number') {
                    $setting['value'] = $setting['value'];
                } elseif ($setting['type'] == 'array') {
                    $setting['value'] = unserialize($setting['value']);
                } else {
                    $setting['value'] = $setting['value'];
                }
                $GLOBALS[$setting['variable']] = $data[$setting['variable']] = $setting['value'];
            }
            $outextcreditsrcs = $outextcredits = array();
            foreach ((array) $data['outextcredits'] as $value) {
                $outextcreditsrcs[$value['creditsrc']] = $value['creditsrc'];
                $key = $value['appiddesc'] . '|' . $value['creditdesc'];
                if (!isset($outextcredits[$key])) {
                    $outextcredits[$key] = array('title' => $value['title'], 'unit' => $value['unit']);
                }
                $outextcredits[$key]['ratiosrc'][$value['creditsrc']] = $value['ratiosrc'];
                $outextcredits[$key]['ratiodesc'][$value['creditsrc']] = $value['ratiodesc'];
                $outextcredits[$key]['creditsrc'][$value['creditsrc']] = $value['ratio'];
            }
            $data['outextcredits'] = $outextcredits;
            $exchcredits = array();
            $allowexchangein = $allowexchangeout = FALSE;
            foreach ((array) $data['extcredits'] as $id => $credit) {
                $data['extcredits'][$id]['img'] = $credit['img'] ? '<img style="vertical-align:middle" src="' . $credit['img'] . '" />' : '';
                if (!empty($credit['ratio'])) {
                    $exchcredits[$id] = $credit;
                    $credit['allowexchangein'] && ($allowexchangein = TRUE);
                    $credit['allowexchangeout'] && ($allowexchangeout = TRUE);
                }
                $data['creditnotice'] && ($data['creditnames'][] = str_replace("'", "\\'", htmlspecialchars($id . '|' . $credit['title'] . '|' . $credit['unit'])));
            }
            $data['creditnames'] = $data['creditnotice'] ? implode(',', $data['creditnames']) : '';
            $creditstranssi = explode(',', $data['creditstrans']);
            $data['creditstrans'] = $creditstranssi[0];
            unset($creditstranssi[0]);
            $data['creditstransextra'] = $creditstranssi;
            for ($i = 1; $i < 5; $i++) {
                $data['creditstransextra'][$i] = !$data['creditstransextra'][$i] ? $data['creditstrans'] : $data['creditstransextra'][$i];
            }
            $data['exchangestatus'] = $allowexchangein && $allowexchangeout;
            $data['transferstatus'] = isset($data['extcredits'][$data['creditstrans']]);
            require_once CYASK_ROOT . './uc_client/client.php';
            $ucapparray = uc_app_ls();
            $data['allowsynlogin'] = isset($ucapparray[UC_APPID]['synlogin']) ? $ucapparray[UC_APPID]['synlogin'] : 1;
            $appnamearray = array('UCHOME', 'XSPACE', 'DISCUZ', 'SUPESITE', 'SUPEV', 'ECSHOP', 'ECMALL', 'CYASK');
            $data['ucapp'] = $data['ucappopen'] = array();
            $data['uchomeurl'] = '';
            $appsynlogins = 0;
            foreach ($ucapparray as $apparray) {
                if ($apparray['appid'] != UC_APPID) {
                    if (!empty($apparray['synlogin'])) {
                        $appsynlogins = 1;
                    }
                    if ($data['uc']['navlist'][$apparray['appid']] && $data['uc']['navopen']) {
                        $data['ucapp'][$apparray['appid']]['name'] = $apparray['name'];
                        $data['ucapp'][$apparray['appid']]['url'] = $apparray['url'];
                    }
                }
                $data['ucapp'][$apparray['appid']]['viewprourl'] = $apparray['url'] . $apparray['viewprourl'];
                foreach ($appnamearray as $name) {
                    if ($apparray['type'] == $name && $apparray['appid'] != UC_APPID) {
                        $data['ucappopen'][$name] = 1;
                        if ($name == 'UCHOME') {
                            $data['uchomeurl'] = $apparray['url'];
                        } elseif ($name == 'XSPACE') {
                            $data['xspaceurl'] = $apparray['url'];
                        }
                    }
                }
            }
            include language('runtime');
            $dlang['date'] = explode(',', $dlang['date']);
            $data['dlang'] = $dlang;
            break;
        case 'ipbanned':
            if ($db->num_rows($query)) {
                $data['expiration'] = 0;
                $data['regexp'] = $separator = '';
            }
            while ($banned = $db->fetch_array($query)) {
                $data['expiration'] = !$data['expiration'] || $banned['expiration'] < $data['expiration'] ? $banned['expiration'] : $data['expiration'];
                $data['regexp'] .= $separator . ($banned['ip1'] == '-1' ? '\\d+\\.' : $banned['ip1'] . '\\.') . ($banned['ip2'] == '-1' ? '\\d+\\.' : $banned['ip2'] . '\\.') . ($banned['ip3'] == '-1' ? '\\d+\\.' : $banned['ip3'] . '\\.') . ($banned['ip4'] == '-1' ? '\\d+' : $banned['ip4']);
                $separator = '|';
            }
            break;
        default:
            while ($datarow = $db->fetch_array($query)) {
                $data[] = $datarow;
            }
    }
    $dbcachename = $cachename;
    $curdata = "\$_DCACHE['{$cachename}'] = " . arrayeval($data) . ";\n\n";
    $db->query("REPLACE INTO {$tablepre}caches (cachename, type, dateline, data) VALUES ('{$dbcachename}', '1', '{$timestamp}', '" . addslashes($curdata) . "')");
    return $curdata;
}
Example #15
0
 function checkapps()
 {
     @(include FANWE_ROOT . 'uc_client/data/cache/apps.php');
     if (count($_CACHE['apps']) == 0) {
         $appls = uc_app_ls();
         $cachefile = FANWE_ROOT . 'uc_client/data/cache/apps.php';
         $fp = fopen($cachefile, 'w');
         $s = "<?php\r\n";
         $s .= '$_CACHE[\'apps\'] = ' . var_export($appls, TRUE) . ";\r\n";
         fwrite($fp, $s);
         fclose($fp);
     }
 }
Example #16
0
 /**
  * UC应用列表
  *
  * @return unknown
  */
 public function uc_app_ls()
 {
     return uc_app_ls();
 }