• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

织梦吧 - dedecms,网站模板,建站教程,图片素材免费下载

DedeCMS视频教程
当前位置: 织梦吧 > CMS教程 > discuz教程 >

discuzx中DIY的时候模块为空(消失)的检查。(4)

来源: www.dedecms8.com 编辑:织梦吧 时间:2012-02-07点击:

在这里使用了dz中的模板语法 loop 与 /loop 间循环把 $_G['cache']['blockclass'] 中的值以html形式输出。好了,我们知道了问题的上一个根源。$_G是dx中的全局变量,那我们在dx中把它输出出来看看,里面有没有内容。在

 

  1. http://x2/portal.php?mod=portalcp&ac=diy&op=blockclass&inajax=1&ajaxtarget

根据这个地址,找到portal_portalcp.php,其中还包含了比较重要的一个文件是 portalcp_diy.php
其中的
 

  1. if($op == 'blockclass') { 

这段对我们上面js中的请求进行了处理。
 

  1. loadcache('blockclass'); 

这段是读取 blockclass 为名字的缓存,读到$_G['cache']['blockclass']中。说到这里,大家应该明白这之间的关系了吧。

鼠标点击触发js函数,js函数中get一个php文件,php文件中对这次请求进行了处理,读取了 blockclass 缓存,存到了 $_G['cache']['blockclass'] 中,然后在模板文件中把它们循环显示出来。就是这样。

问题分析到这里知道了流程,那么这个问题就出在 $_G['cache']['blockclass'] 上。我尝试打印了$_G['cache']['blockclass']的值。
 

  1. <?php 
  2. require './source/class/class_core.php';  
  3. $discuz = & discuz_core::instance();  
  4. $discuz->cachelist = $cachelist;  
  5. $discuz->init();  
  6. loadcache('blockclass');  
  7. print_r($_G['cache']['blockclass']);  
  8. ?> 

这段程序就是读下blockclass 缓存,然后把 $_G['cache']['blockclass'] 的值打出来,奇怪的是,我在这个站长的站上这个值打印出来是空的,只有结构没有数据,所以当然显示模块为空了。
没办法,只有继续往上查。查什么?查读取缓存的程序,读取模块缓存的函数是 blockclass_cache() 在 function_block.php 中
在这里,我摘出了部分代码,然后让它输出我需要的东西。程序代码不在这里贴了。上传附件中了。

在这个函数中程序分别读取 class/block 下面文件夹中的程序文件,输出结果如图:
QQ截图20110829192559.png

标签: DIY
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 tom@tiptop.cn ,  QQ