⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cache.func.php

📁 极限网络智能办公系统 Office Automation V3.0官方100%源代码.
💻 PHP
📖 第 1 页 / 共 4 页
字号:
					}
				}
				$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] : '&nbsp;').'</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 + -