缓存__Discuz!X 中会自动初始化的一些系统缓存

转自:http://blog.ihipop.info/2012/02/2990.html,如需转载请注明出处

"\ultrax\source\class\class_core.php" 约536行

usergroup_【当前用户的groupid】
admingroup_【当前用户的adminid】
setting
style_default
cronnextrun
usergroup_【newusergroupid】
style_【主题ID】

此外,如果你进入一些特定页面,还会调用更深层次的一些缓存。比如编辑器表情标签初始化的时候会载入similes缓存,使用plugin.php调用插件的时候会自动载入plugin缓存等等,如果需要在别处调用某一处缓存,比如plugin,similes,可以直接传给loadcache($cachenames, $force = false)一个缓存名称后就可以获取到缓存数据。当然传入一个数组也是可以的。
以下是缓存的工作原理 via: discuz dev wiki



如何注册系统缓存呢?可以使用dX基带的缓存扩展机制。
很简单 在\source\function\cache增加一个文件,比如以dz 自己带到smiles为例。

<?php

/**
 *      [Discuz!] (C)2001-2099 Comsenz Inc.
 *      This is NOT a freeware, use is subject to license terms
 *
 *      $Id: cache_smilies.php 22550 2011-05-12 05:21:39Z monkey $
 */

if(!defined('IN_DISCUZ')) {
	exit('Access Denied');
}

function build_cache_smilies() {
	$data = array();
	$query = DB::query("SELECT s.id, s.code, s.url, t.typeid FROM ".DB::table('common_smiley')." s
		LEFT JOIN ".DB::table('forum_imagetype')." t ON t.typeid=s.typeid WHERE s.type='smiley' AND s.code<>'' AND t.available='1' ORDER BY LENGTH(s.code) DESC");

	$data = array('searcharray' => array(), 'replacearray' => array(), 'typearray' => array());
	while($smiley = DB::fetch($query)) {
		$data['searcharray'][$smiley['id']] = '/'.preg_quote(dhtmlspecialchars($smiley['code']), '/').'/';
		$data['replacearray'][$smiley['id']] = $smiley['url'];
		$data['typearray'][$smiley['id']] = $smiley['typeid'];
	}

	save_syscache('smilies', $data);
}

?>

建立这个cache_【cachename】.php和build_cache_【cachename】函数,按照指定的流程取出数据,使用save_syscache保存就可以了。按照标准方法建立的缓存,自动会加入缓存机制,后台更新缓存时,都会自动执行。
手动更新缓存的话,可以直接使用updatecache(),传名字和数组进去都可以。如果提示没有这个函数,需要
require_once libfile('function/cache');一下。更新缓存后就可以load来得到最新的缓存数据。使用$_G['cache']['【cachename】']来进行访问。


附带经常要使用到的dz的一些变量。

$adminid
1为管理员
2为总版主
3为版主
0表示否,即非管理组
-1表示 特殊组及除了1,2,3以外的系统组(即4,5,6,7,8组)

$displayorder
0 正常帖
1 板块置顶 1级置顶
2 分类置顶 2级置顶
3 全局置顶 3级置顶
-1 被删除的帖 回收站
-2 待审核的帖
-3 审核忽略
-4 草稿

Author Info :




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值