PHPCMS2008源码浅析之cache.func.php---cache_cache_module()函数讲解
function cache_module()
{
//此函数的目的,是生成单独页的配置信息,把前面setting关于的一些网站基本信息,与 模块的信息组成一个新的数组,并写到 /dada/cache/module_xxx.php
global $db;
$data = array();
$result = $db->query("SELECT `module`,`name`,`path`,`url`,`iscore`,`version`,`publishdate`,`installdate`,`updatedate`,`setting` FROM `".DB_PRE."module` WHERE `disabled`=0");
while($r = $db->fetch_array($result))
{
if(!$r['path']) $r['path'] = $r['module'] == 'phpcms' ? '' : $r['module'].'/';
if(!$r['url']) //当url为空值时,给module值给它,从数据库来看,这两个值通常是一样子的
{
$r['url'] = $r['module'] == 'phpcms' ? '' : $r['module'].'/';
$db->query("UPDATE `".DB_PRE."module` SET `url`='$r[url]' WHERE module='$r[module]' LIMIT 1");
}
if($r['setting'])
{
$setting = $r['setting'];
eval("\$setting = $setting;"); //将setting重新给一个数据变量
unset($r['setting']); //清空数组r里的setting变量,
if(is_array($setting)) $r = array_merge($r, $setting);
//这一句要注意,把setting数组合并$r模块里的关于`module`,`name`,`path`,`url`,`iscore`,`version`,`publishdate`,`installdate`,`updatedate`信息,方便后面调用
}
cache_write('module_'.$r['module'].'.php', $r); //生成 module_xxx.php,这里跑完这一句后,就生成了,最新的模块配置的信息,里面是最基础的数据并没有网站内容
}
$db->free_result($result);
}
0
顶一下0
踩一下