大家都知道ecshop有一个会员注册选项设置的一个功能,在会员注册添加新字段的时候非常的好用,但是缺点就是只能添加input type=”text”的文本字段,如果是单选,多选,下拉,图片的话,就没办法添加了。
最近接到一个ecshop二次开发的任务,要在会员注册的时候,首选选择个人会员还是企业会员,如果是个人会员,则上传身份证照片如果是企业会员就上传营业执照照片,我在百度上面搜了一下,发现并没有相关的教程,所以今天我就详细的说明一下ecshop会员注册添加新的字段的方法。
实现的效果如下图:(因为是测试,用的text的)
首先说明一下,用的程序版本是ecshop2.7.3 utf8版的,其他版本的可能代码的行数,位置不太一样。
下面说具体方法:
1、首先打开mysql数据库管理软件,我用的是phpmyadmin,找到ecs_users表,添加需要的字段就可以了,我这里添加的是geren,qiye这两个。
2、添加会员注册的表单字段
文件位置:/themes/您的模板目录/user_passport.dwt 搜索: 然后添加新的表单字段就可以了。如果不会添加,可以参照原有的表单字段修改一下就可以了,注意 name一定要修改成你的新添加的数据库字段,我添加的是geren,qiye这两个
<input type=”text” name=”geren” > <input type=”text” name=”qiye” >。
3、打开根目录的user.php文件,找到大约160行,添加
$geren = isset($_POST[‘geren’]) ? trim($_POST[‘geren’]) : ”;
$qiye = isset($_POST[‘qiye’]) ? trim($_POST[‘qiye’]) : ”;
geren,qiye改为你要添加的字段,如果只有一个就添加一个,多个添加多个。
添加好的效果如下图:
找到207行左右,原来的代码为if (register($username, $password, $email, $other) !== false)
添加上自己的数据库字段,修改后为:
if (register($username, $password, $email, $geren, $qiye, $other) !== false)。
4、打开根目录下includes/lib_passport.php
找到第32行,原来的代码为:
function register($username, $password, $email, $other = array())
添加上自己的数据库字段,修改后为:
function register($username, $password, $email, $geren, $qiye, $other = array())
找到第77行,原来的代码为:
if (!$GLOBALS[‘user’]->add_user($username, $password, $email))
添加上自己的数据库字段,修改后为:
if (!$GLOBALS[‘user’]->add_user($username, $password, $email, $geren, $qiye))
5、打开根目录下includes/modules/integrates/ecshop.php
第71行左右,在函数里面 添加
$this->field_qiye = ‘qiye’;
$this->field_geren = ‘geren’;
修改后的样式为:
6、打开根目录下includes/modules/integrates/integrate.php
找到第186行,原来的代码为:
function add_user($username, $password, $email, $gender = -1, $bday = 0, $reg_date=0, $md5password=”)
添加上自己的数据库字段,修改后为:
function add_user($username, $password, $email, $geren, $qiye, $gender = -1, $bday = 0, $reg_date=0, $md5password=”)
找到第217行跟228行
217行添加,$this->field_geren, $this->field_qiye
218行添加, $geren, $qiye
添加完后的效果为:
然后更新下缓存,就OK了~
注册一个新帐号,看看效果:
内容已经成功添加到数据库里了。
说的已经很详细了,相信大家看了之后,肯定都会操作了。
这只是完成了我的计划的第一步,下一步完成会员注册的时候可以上传照片。
教程会在接下来放出。