discuz X3.2 在用户信息表加一个头像字段(已解决)
2015-06-04 21:10
183 查看
想做discuz开发要了解它的目录结构
一)
Discuz!的文件系统目录
a) Admin:后台管理功能模块
b) Api:DZ系统与其它系统之间接口程序
c) Archiver:DZ中,用以搜索引擎优化的无图版
d) Attachments:DZ中 ,用户上传附件的存放目录
e) Customavatars:DZ中,用户自定义头像的目录
f) Forumdata:DZ缓存数据的存放目录g) Images:DZ模板中的图片存放目录
h) Include:DZ常用函数库,基本功能模块目录i) Ipdata:DZ统计IP来路用的数据
j) Plugins:DZ插件信息的存放目录k) Templates:DZ模板文件的存放目录
l) Wap:DZ无线,Wap程序处理目录
二)
必须知道discuz用户注册是多存了那些数据,添加进那些数据表,走了哪些php,哪些js
三)
DZ如何处理用户信息(存取、计算、更新过程)新手要做二次开发,都必须掌握这数组中,每个数组元素的意义。
1)
DZ的基本信息,如用户信息,Session信息存在如下变量中:
2).
$_DCACHEb). $_COOKIEc). $_DCOOKIEd). $_DSESSION
3).
$_DPLUGINb) 可以通过print_r($GLOBALS),打印全部变量
四)
前台流程控制:前台的流程控制比较简单:
例如:
首页:index.php
会员注册:register.php;
会员登录:logging.php
发贴程序:post.php
会员信息:member.php
论坛内容:forumdisplay.php
查看贴子:viewthread.php
..............................[很多]
这里 要总结的是 在用户表中添加一个头像的字段 我给定义为 (string)img
首先 我追踪discuz源码 知道了
注册时调用的模板位置在根目录下
template / member /register.htm
处理文件 是 根目录下的member.php 文件
在member.php 里通过 表单域传递过来的mod变量进行调用其他页面进行处理
require DISCUZ_ROOT.'./source/module/member/member_'.$mod.'.php';
上面这一句代码是调用了根目录下/source/module/member/member_register.php文件
找到这个类之后就好说了,在里面查找on_register()方法
从以上一段代码可以 看出 注册页面
的显示 和处理 都是在这里进行处理
往下看我们就会发现
在 这个文件的 781行调用了一个类的方法
在272行调用了insert
方法
好了 代码 找到了 现在 我要做的 就是 在这两个方法里 加上 我们 自己的 字段 $img
在discuz的模板register.htm 里 加上 标签 在 on_register() 做图片处理,在
然后 在 根目录下/source/class/table/table_common_member.php 文件
好了 这里 就总结到这里啦 ! 下 次继续
一)
Discuz!的文件系统目录
a) Admin:后台管理功能模块
b) Api:DZ系统与其它系统之间接口程序
c) Archiver:DZ中,用以搜索引擎优化的无图版
d) Attachments:DZ中 ,用户上传附件的存放目录
e) Customavatars:DZ中,用户自定义头像的目录
f) Forumdata:DZ缓存数据的存放目录g) Images:DZ模板中的图片存放目录
h) Include:DZ常用函数库,基本功能模块目录i) Ipdata:DZ统计IP来路用的数据
j) Plugins:DZ插件信息的存放目录k) Templates:DZ模板文件的存放目录
l) Wap:DZ无线,Wap程序处理目录
二)
必须知道discuz用户注册是多存了那些数据,添加进那些数据表,走了哪些php,哪些js
三)
DZ如何处理用户信息(存取、计算、更新过程)新手要做二次开发,都必须掌握这数组中,每个数组元素的意义。
1)
DZ的基本信息,如用户信息,Session信息存在如下变量中:
2).
$_DCACHEb). $_COOKIEc). $_DCOOKIEd). $_DSESSION
3).
$_DPLUGINb) 可以通过print_r($GLOBALS),打印全部变量
四)
前台流程控制:前台的流程控制比较简单:
例如:
首页:index.php
会员注册:register.php;
会员登录:logging.php
发贴程序:post.php
会员信息:member.php
论坛内容:forumdisplay.php
查看贴子:viewthread.php
..............................[很多]
这里 要总结的是 在用户表中添加一个头像的字段 我给定义为 (string)img
首先 我追踪discuz源码 知道了
注册时调用的模板位置在根目录下
template / member /register.htm
处理文件 是 根目录下的member.php 文件
在member.php 里通过 表单域传递过来的mod变量进行调用其他页面进行处理
require DISCUZ_ROOT.'./source/module/member/member_'.$mod.'.php';
上面这一句代码是调用了根目录下/source/module/member/member_register.php文件
$ctl_obj = new register_ctl(); //实例化一个类文件 $ctl_obj->setting = $_G['setting']; $ctl_obj->template = 'member/register'; $ctl_obj->on_register(); //调用 类里面的方法这个类文件在根目录下/source/class/class_member.php
找到这个类之后就好说了,在里面查找on_register()方法
从以上一段代码可以 看出 注册页面
的显示 和处理 都是在这里进行处理
往下看我们就会发现
在 这个文件的 781行调用了一个类的方法
C::t('common_member')->insert($uid, $username, $password, $email, $_G['clientip'], $groupinfo['groupid'], $init_arr);这个类文件在根目录下/source/class/table/table_common_member.php
在272行调用了insert
方法
public function insert($uid, $username, $password, $email, $ip, $groupid, $extdata, $adminid = 0) { if(($uid = dintval($uid))) { $credits = isset($extdata['credits']) ? $extdata['credits'] : array(); $profile = isset($extdata['profile']) ? $extdata['profile'] : array(); $profile['uid'] = $uid; $base = array( 'uid' => $uid, 'username' => (string)$username, 'password' => (string)$password, 'email' => (string)$email, 'adminid' => intval($adminid), 'groupid' => intval($groupid), 'regdate' => TIMESTAMP, 'emailstatus' => intval($extdata['emailstatus']), 'credits' => dintval($credits[0]), 'timeoffset' => 9999 ); $status = array( 'uid' => $uid, 'regip' => (string)$ip, 'lastip' => (string)$ip, 'lastvisit' => TIMESTAMP, 'lastactivity' => TIMESTAMP, 'lastpost' => 0, 'lastsendmail' => 0 ); $count = array( 'uid' => $uid, 'extcredits1' => dintval($credits[1]), 'extcredits2' => dintval($credits[2]), 'extcredits3' => dintval($credits[3]), 'extcredits4' => dintval($credits[4]), 'extcredits5' => dintval($credits[5]), 'extcredits6' => dintval($credits[6]), 'extcredits7' => dintval($credits[7]), 'extcredits8' => dintval($credits[8]) ); $ext = array('uid' => $uid); parent::insert($base, false, true); C::t('common_member_status')->insert($status, false, true); C::t('common_member_count')->insert($count, false, true); C::t('common_member_profile')->insert($profile, false, true); C::t('common_member_field_forum')->insert($ext, false, true); C::t('common_member_field_home')->insert($ext, false, true); manyoulog('user', $uid, 'add'); } }
好了 代码 找到了 现在 我要做的 就是 在这两个方法里 加上 我们 自己的 字段 $img
在discuz的模板register.htm 里 加上 标签 在 on_register() 做图片处理,在
然后 在 根目录下/source/class/table/table_common_member.php 文件
好了 这里 就总结到这里啦 ! 下 次继续
相关文章推荐
- iOS百度推送
- STL --> queue单向队列
- hdu1232&& hdu1213(简单并查集)
- Android Service完全解析,关于服务你所需知道的一切(上)
- Android必备的Java知识点
- 深复制和浅复制(clone)
- css三个边距对比
- MySQL 最基本的SQL语法/语句
- UNIX环境高级编程学习笔记(五)文件和目录
- 面试题:数组有没有length()方法? 字符串有没有length()方法? 集合有没有length()方法?
- 如何使用高德地图
- ACM 图像有用区域
- 【每日scrum】NO.5
- HttpClient4.4.1 关于文件上传 中文文件名编码问题
- 实现signal和slot机制(2)-跨线程投递
- Unable to create unsliced image from csi bitmap data
- cf-289B
- MAC 下编写opengl3+程序
- P123.36
- 白话经典算法系列之中的一个 冒泡排序的三种实现