清泉逐流

做着努力,等待幸福到来
» 日志

基于插件的Discuz X2 子论坛的实现

时间 : 2012-04-11 09:52 标签 : PHP  Discuz  

  工作的一些原因,最近又做起了Discuz X2了。

  这次的一个很重要的任务就是是Discuz X2的子论坛的实现。很重要的一个参照是e度论坛(bbs.eduu.com),研究了其原理,在这里简单说说主要的实现思路。

  首先那个子论坛是在不同的城市时,显示不同的分区。这点很重要,所以我们可以开发一个简单的subbbs插件,将城市信息(包括城市名称、城市包含的分区、城市包含的群组分区、城市显示样式、城市的子域名等)在插件中保存起来。

  这样在class_core类中初始化了网站配置之后,就可以将那些信息保存到$_G变量中。为了提高效率,我们可以缓存那些配置,这样不用每次都去读取数据库表。

  接下来需要做的就是用户访问城市判断。可以保存城市ID到用户的cookie中,这样当一个用户只要以前访问过一次网站,下次来的时候,还可以进入之前的城市。

  接下来要做的就是对网站代码修改了。网站代码的修改还是挺多的,总结下来主要有下面这几个文件:

查看全文 »

关于Discuz!X2插件设计与hook标签

时间 : 2011-12-18 17:29 标签 : PHP  Discuz  

  不知道为什么,发现Discuz的页面中莫名其妙的多了以下变量,就是直接显示在页面上的。

  [string global_usernav_extra1]

  [string global_usernav_extra2]

  [string global_usernav_extra3]  

  [string global_cpnav_extra2]  

  [string global_header]

  [string global_footer]

查看全文 »

关于discuz关闭数据库的疑问

时间 : 2011-12-12 18:39 标签 : Discuz  PHP  

  以前学习的时候,看书上说的是对数据库操作完成之后一定要及时关闭数据库连接,否则服务器将不能承受太多连接,这样我们就养成了个习惯,任何时候mysql_connect的时候,操作之后会mysql_close。

  但是最近学习discuz,发现没有找到discuz中对数据库的关闭操作。刚开始还以为自己没发现,其实是真的没有。

  后来上网查了资料,看到手册上对mysql_connect和mysql_pconnect的说明:

mysql_connect() 函数

语法:mysql_connect(server,user,pwd,newlink,clientflag)

  注释:脚本一结束,到服务器的连接就被关闭,除非之前已经明确调用 mysql_close() 关闭了。

查看全文 »

Discuz!X目录结构

时间 : 2011-11-22 20:23 标签 : Discuz  

  api ┄┄┄外部接口

    connect ┄┄┄腾讯互联

    db ┄┄┄UCenter数据库备份接口

    google ┄┄┄Google引擎使用

    javascript ┄┄┄数据和广告的 JS调用

    manyou┄┄┄manyou应用及搜索等相关服务

    trade ┄┄┄在线支付接口

  archiver┄┄┄论坛静态化

  config ┄┄┄站点配置文件

  data┄┄┄数据缓存及附件

    attachment┄┄┄上传的文件目录

      album┄┄┄相册专用

      block┄┄┄DIY专用

      common┄┄┄公共上传

      forum┄┄┄论坛附件专用

查看全文 »

关于discuz 7.0 的密码加密

时间 : 2009-09-22 22:41 标签 : Discuz  

  由于一些特殊原因,XX部门的discuz论坛提供的登录接口,当时想了想,由于另一边的环境是 asp.net+mssql,但是论坛这边环境竟然是php+mysql,后来还是想自己写一个接口好了,后来研究了discuz的内部结构,用php脚本写了个登录的接口,但是写到密码验证的时候,出现了问题,通过对代码的追踪分析,发现了discuz数据库的加密方式,当然这其中也出现了一些小差错,那就是吧members表的密码当成了登录密码,后来发现那个密码只是一个糊弄人的东东,真正的密码其实是存在另外一个uc_members的表里面的,加密方式也是经过双层MD5加密的,并且结合了哈希。其实说简单一点就是在用户注册的时候生成一串哈希值,并且存到用户的数据库中,在以后的验证中要使用到。    其实就是加密方式就是    加密后的密码=MD5(  MD5( 开始的密码) + 用户注册时候生成的哈希值  )     哈希值就是存在用户表的salt字段当中,注意是两个表,找对了才行,上次自己就是因为找错了表而花了好多时间。现在想起来都有点晕。。。。

查看全文 »
» 日志标签