📄 cache.func.php
字号:
}
}
$bbcode['explanation'] = dhtmlspecialchars(trim($bbcode['explanation']));
$bbcode['example'] = addcslashes($bbcode['example'], '\\\'');
$bbcode['prompt'] = addcslashes($bbcode['prompt'], '\\\'');
unset($bbcode['tag']);
$data[$tag] = $bbcode;
}
break;
case 'smilies':
$data = array('searcharray' => array(), 'replacearray' => array());
while($smiley = $db->fetch_array($query)) {
$data['searcharray'][$smiley['id']] = '/'.preg_quote(dhtmlspecialchars($smiley['code']), '/').'/';
$data['replacearray'][$smiley['id']] = $smiley['url'];
}
break;
case 'smilies_display':
$smdir = defined('SMDIR') ? SMDIR : './images/smilies';
while($smiley = $db->fetch_array($query)) {
if($size = @getimagesize($smdir.'/'.$smiley['url'])) {
$smiley['code'] = dhtmlspecialchars($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']);
$data[$smileyid] = $smiley;
}
}
break;
case 'smiliestable':
$smdir = defined('SMDIR') ? SMDIR : './images/smilies';
$smilies = '';
$i = 0;
while($smiley = $db->fetch_array($query)) {
if($i < $smcols * $smrows) {
$size = @getimagesize($smdir.'/'.$smiley['url']);
$s = smthumb($size, $GLOBALS['smthumb']);
$smiley['w'] = $s['w'];
$smiley['h'] = $s['h'];
$l = smthumb($size);
$smiley['lw'] = $l['w'];
$smiley['code'] = addcslashes(addslashes(dhtmlspecialchars($smiley['code'])), '\\\'');
$smilies .= !($i % $smcols) && $i ? '</tr>' : '';
$smilies .= !($i % $smcols) ? '<tr align="center" height="'.($GLOBALS['smthumb'] + 6).'">' : '';
$smilies .= '<td valign="middle"><img src="\\\'+SMDIR+\\\'/'.$smiley['url'].'" id="smilie_'.$smiley['id'].'" alt="'.$smiley['code'].'" border="0" onClick="insertSmiley('.$smiley['id'].')" onMouseover="smileyMenu(this)" width="'.$smiley['w'].'" height="'.$smiley['h'].'" title="'.$smiley['lw'].'" /></td>';
}
$i++;
}
$smilies = $i ? $smilies.'</tr>' : '';
$smiliesnum = $db->result($db->query("SELECT COUNT(*) FROM {$tablepre}smilies WHERE type='smiley'"), 0);
return "\$_DCACHE['$cachename'] = '".$smilies."';\n\$_DCACHE['smiliesnum'] = '".$smiliesnum."';\n";
case 'icons':
while($icon = $db->fetch_array($query)) {
$data[$icon['id']] = $icon['url'];
}
break;
case (in_array($cachename, array('fields_required', 'fields_optional', 'fields_thread'))):
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;
}
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 'advs':
$data = advertisement($script);
break;
case 'faqs':
while($faqs = $db->fetch_array($query)) {
$data[$faqs['identifier']]['id'] = $faqs['id'];
$data[$faqs['identifier']]['keyword'] = $faqs['keyword'];
}
break;
case 'secqaa':
while($secqaa = $db->fetch_array($query)) {
$secqaa['answer'] = md5($secqaa['answer']);
$data[] = $secqaa;
}
break;
case 'supe_updateusers':
global $supe;
supe_dbconnect();
if($supe['status'] && $supe['maxupdateusers']) {
$query = $supe['db']->query("SELECT uid, username FROM {$supe[tablepre]}userspaces WHERE islock=0 ORDER BY lastpost DESC LIMIT $supe[maxupdateusers]");
while($datarow = $supe['db']->fetch_array($query)) {
$data[$datarow['uid']] = $datarow;
}
}
break;
case 'supe_updateitems':
global $supe;
supe_dbconnect();
if($supe['status'] && $supe['items']['status']) {
$limit = $supe['items']['rows'] * $supe['items']['columns'];
switch($supe['items']['orderby']) {
case '1':
$orderby = 'viewnum';
break;
case '2':
$orderby = 'replynum';
break;
case '3':
$orderby = 'dateline';
break;
case '4':
$orderby = 'lastpost';
break;
default:
$orderby = 'itemid';
}
$supe['items']['hours'] = $supe['items']['hours'] > 0 ? $supe['items']['hours'] : 24;
$conditions = !in_array($orderby, array('dateline', 'lastpost')) ? 'WHERE folder=1 AND type<>\'news\' AND dateline >='.($timestamp - $supe['items']['hours'] * 3600) : 'WHERE folder=1 AND type<>\'news\'';
$query = $supe['db']->query("SELECT itemid, uid, username, type, subject FROM {$supe[tablepre]}spaceitems $conditions ORDER BY $orderby DESC LIMIT $limit");
$itemtable = '';
$items = array();
include language('templates');
while($item = $supe['db']->fetch_array($query)) {
$typename = $language['supe_'.$item['type']];
$items[] = '<a href="\'.$supe[\'siteurl\'].\'?action/viewspace/itemid/'.$item['itemid'].'.html" target="_blank"><img src="\\\'+IMGDIR+\\\'/menu_collapsed_yes.gif" align="absmiddle" border="0"></a> [<a href="\'.$supe[\'siteurl\'].\'?action/'.$item['type'].'" target="_blank">'.$typename.'</a>] <a href="\'.$supe[\'siteurl\'].\'?uid/'.$item['uid'].'" target="_blank"><strong>'.addcslashes(addslashes($item['username']), '\\\'').'</strong></a>: <a href="\'.$supe[\'siteurl\'].\'?action/viewspace/itemid/'.$item['itemid'].'.html" target="_blank">'.addcslashes(addslashes(cutstr($item['subject'], 35)), '\\\'').'</a>';
}
for($i = 0; $i < $limit; $i++) {
$itemtable .= (($i + 1) % $supe['items']['columns'] == 1 || $supe['items']['columns'] == 1 ? '<tr align="left" class="altbg2">' : '').
'<td width="'.intval(100 / $supe['items']['columns']).'%" nowrap style="overflow: hidden;">'.(isset($items[$i]) ? $items[$i] : ' ').'</td>'.
(($i + 1) % $supe['items']['columns'] == 0 ? "</tr>" : '');
}
return "\$_DCACHE['$cachename'] = '".$itemtable."';\n\n";
}
case 'supe_updatecircles':
global $supe;
supe_dbconnect();
if($supe['status'] && $supe['circlestatus']) {
$query = $supe['db']->query("SELECT gid, uid, username, groupname, logo, usernum, lastpost FROM {$supe[tablepre]}groups WHERE catid>0 AND flag=1 ORDER BY lastpost DESC LIMIT 8");
while($datarow = $supe['db']->fetch_array($query)) {
$datarow['groupname'] = cutstr($datarow['groupname'], 30);
$data[] = $datarow;
}
}
break;
default:
while($datarow = $db->fetch_array($query)) {
$data[] = $datarow;
}
}
return "\$_DCACHE['$cachename'] = ".arrayeval($data).";\n\n";
}
function getcachevars($data, $type = 'VAR') {
$evaluate = '';
foreach($data as $key => $val) {
if(is_array($val)) {
$evaluate .= "\$$key = ".arrayeval($val).";\n";
} else {
$val = addcslashes($val, '\'\\');
$evaluate .= $type == 'VAR' ? "\$$key = '$val';\n" : "define('".strtoupper($key)."', '$val');\n";
}
}
return $evaluate;
}
function advertisement($range) {
global $db, $tablepre, $timestamp;
$advs = array();
$query = $db->query("SELECT * FROM {$tablepre}advertisements WHERE available>'0' AND starttime<='$timestamp' ORDER BY displayorder");
if($db->num_rows($query)) {
while($adv = $db->fetch_array($query)) {
if(in_array($adv['type'], array('footerbanner', 'thread'))) {
$parameters = unserialize($adv['parameters']);
$position = isset($parameters['position']) && in_array($parameters['position'], array(2, 3)) ? $parameters['position'] : 1;
$type = $adv['type'].$position;
} else {
$type = $adv['type'];
}
$adv['targets'] = $adv['targets'] == '' ? 'all' : $adv['targets'];
foreach(explode("\t", $adv['targets']) as $target) {
$target = $target == '0' ? 'index' : (in_array($target, array('all', 'register', 'redirect', 'archiver')) ? $target : ($target == 'forum' ? 'forum_all' : 'forum_'.$target));
if((($range == 'forumdisplay' && !in_array($adv['type'], array('thread', 'interthread'))) || $range == 'viewthread') && substr($target, 0, 6) == 'forum_') {
if($adv['type'] == 'thread') {
foreach(isset($parameters['displayorder']) ? explode("\t", $parameters['displayorder']) : array('0') as $postcount) {
$advs[$type.'_'.$postcount][$target][] = $adv['code'];
}
} else {
$advs[$type][$target][] = $adv['code'];
}
} elseif($range == 'all' && in_array($target, array('all', 'redirect'))) {
$advs[$target][$type][] = $adv['code'];
} elseif($target == $range) {
$advs[$type][] = $adv['code'];
}
}
}
}
return $advs;
}
function pluginmodulecmp($a, $b) {
return $a['displayorder'] > $b['displayorder'] ? 1 : -1;
}
function smthumb($size, $smthumb = 50) {
if($size[0] <= $smthumb && $size[1] <= $smthumb) {
return array('w' => $size[0], 'h' => $size[1]);
}
$sm = array();
$x_ratio = $smthumb / $size[0];
$y_ratio = $smthumb / $size[1];
if(($x_ratio * $size[1]) < $smthumb) {
$sm['h'] = ceil($x_ratio * $size[1]);
$sm['w'] = $smthumb;
} else {
$sm['w'] = ceil($y_ratio * $size[0]);
$sm['h'] = $smthumb;
}
return $sm;
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -