📄 cache.func.php
字号:
$data['outextcredits'] = $outextcredits;
$exchcredits = array();
$allowexchangein = $allowexchangeout = FALSE;
foreach((array)$data['extcredits'] as $id => $credit) {
if(!empty($credit['ratio'])) {
$exchcredits[$id] = $credit;
$credit['allowexchangein'] && $allowexchangein = TRUE;
$credit['allowexchangeout'] && $allowexchangeout = TRUE;
}
if(in_array($id, $outextcreditsrcs)) {
$data['extcredits'][$id]['allowexchangeout'] = 1;
$data['extcredits'][$id]['outratio'] = 1;
}
}
$data['exchangestatus'] = $allowexchangein && $allowexchangeout || !empty($data['outextcredits']);
$data['transferstatus'] = isset($data['extcredits'][$data['creditstrans']]);
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,
'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();
}
if(!empty($data['google']['status'])) {
$data['google'] = $data['google']['searchbox'];
} else {
$data['google'] = 0;
}
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&srchtxt='.rawurlencode($keyword).'&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']).'&keyword='.rawurlencode($topic['keyword']).'&stype='.$topic['stype'].'&length='.$topic['length'].'&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;
}
}
}
}
}
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
LEFT JOIN {$tablepre}pluginhooks ph ON ph.pluginid=p.pluginid AND ph.available='1'
WHERE 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'];
}
}
require_once DISCUZ_ROOT.'./uc_client/client.php';
$ucapparray = uc_app_ls();
$appnamearray = array('UCHOME','XSPACE','DISCUZ','SUPESITE','SUPEV','ECSHOP','ECMALL');
$data['ucapp'] = $data['ucappopen'] = array();
$data['uchomeurl'] = '';
foreach($ucapparray as $apparray) {
if($apparray['appid'] != UC_APPID && $data['uc']['navlist'][$apparray['appid']] && $data['uc']['navopen']) {
$data['ucapp'][$apparray['appid']]['name'] = $apparray['name'];
$data['ucapp'][$apparray['appid']]['url'] = $apparray['url'];
}
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['medalstatus'] = intval($db->result_first("SELECT count(*) FROM {$tablepre}medals WHERE available='1'"));
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' => '<a href="digest.php?authorid=$post[authorid]">$post[digestposts]</a>',
'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['showinthread']) {
$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' AND showinthread='1' 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].' </dd>', '"');
} elseif(substr($key, 0, 6) == 'field_') {
$v = addcslashes('<dt>'.$authorinfoitems[$key][0].'</dt><dd>'.$authorinfoitems[$key][1].' </dd>', '"');
} elseif($key == 'gender') {
$v = '".('.$authorinfoitems['gender'].' == 1 ? "'.addcslashes('<dt>'.$language['authorinfoitems_'.$key].'</dt><dd>'.$language['authorinfoitems_gender_male'].' </dd>', '"').'" : ('.$authorinfoitems['gender'].' == 2 ? "'.addcslashes('<dt>'.$language['authorinfoitems_'.$key].'</dt><dd>'.$language['authorinfoitems_gender_female'].' </dd>', '"').'" : ""))."';
} elseif($key == 'location') {
$v = '".('.$authorinfoitems[$key].' ? "'.addcslashes('<dt>'.$language['authorinfoitems_'.$key].'</dt><dd>'.$authorinfoitems[$key].' </dd>', '"').'" : "")."';
} else {
$v = addcslashes('<dt>'.$language['authorinfoitems_'.$key].'</dt><dd>'.$authorinfoitems[$key].' </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]);
$customauthorinfo[3] = @implode('', $customauthorinfo[3]);
$data['customauthorinfo'] = $customauthorinfo;
$postnocustomnew[0] = $data['postno'] != '' ? (preg_match("/^[\x01-\x7f]+$/", $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("/^[\x01-\x7f]+$/", $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;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -