登录 注册

登录

问题 joomla如何批量新建用户账号?

更多
2008年11月01日 23:42 #1 作者: 碧空幻影
如题,我想知道joomla怎样批量新增用户账号?

我们学院的网站需要为所有同学每人建一个账号,可不可以用什么方法按照大家的学号批量添加?权限要求只要是普通用户就可以。

我的想法是用大家的学号做账号,在excel下把学号批量导入,密码用某个算法随机生成,然后转化成二维关系数据库导入到joomla的数据库中。excel下操作简单,但怎么弄进数据库去 我就不懂了,望高人指点!

(如果不可以批量的话,我一个一个添加那几百人不得累死?关键是那样太慢了!)

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年11月02日 10:19 #2 作者: Joomla之门
这个问题很好!类似的情况应该不少,例如某些企业网站也可能需要给每个员工创建一个帐号。

不过,我首先想弄明白,如果你为成百上千上创建了帐号后(为了安全考虑,每个人密码肯定是不一样的),你如何将密码告知这些帐号拥有者?难道像银行一样打印一个密码信封?

我认为最省事的莫过于让他们自己注册。这样你也轻松,他们也可以借机熟悉一下网站。

随之而来的一个问题就是:怎么知道注册者就是本学院/公司 的成员?这个简单,你可以发布通知,让本学院师生/本公司员工 在规定时间、规定地点(双规?呵呵)去注册,这个地点当然是外部人无法进入的,例如学校的图书馆/公司的休息室,然后在网站后台将访问 IP地址/IP段 限制到那个地点即可(图书馆可以开放10台电脑专供注册,应该够用吧?)。等到注册结束,就可以放开 IP 限制了。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年11月02日 15:58 #3 作者: 碧空幻影
呵呵,白大哥多虑了,因为那个账号不涉及钱的问题,所以并不重要,密码告知只要把二维数据库表转成excel打出来,发到各班让大家记住自己的学号对应的密码就行。(我们的学校教务处选课系统的密码就是这样公布的;校园网的Dr.com客户端上网的密码也是这样的,用户名和密码均为学号,大家自己去改密码。)

让他们自己注册我认为并不妥当,一方面按照学号批量添加的话便于管理,但是让大家自己注册的话那就管不了人家用什么样的用户名了,到时候会很乱,不知道谁是谁。另一方面我们网站会员注册的功能我不想开放,有需要的由管理员手动添加,这样既安全也便于管理。最重要的是我们学院不是独立的学校,是学校下属的二级院系,我们的网站也是二级网站,机房和图书馆是学校公用设施,我没办法为他们注册专门提供机器。

还是请大家一起想想办法!掌握了对joomla数据表的操作我们才能更好的使用joomla!

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年11月02日 21:00 #4 作者: kisin
呵呵,虽然不懂开发.但是感觉需要两种.一种是上传文档导入数据库,一种是进行规则设定.

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年11月06日 09:51 #5 作者: Joomla之门
我找到一个可以批量添加(生成)注册用户帐号的组件 JLord Users Generator,分别有针对 Joomla! 1.0.x 和 Joomla! 1.5.x 平台的版本。

不过,这个组件不能设定用户名的规律,比如从 20060101 递增(这样就能按照学生的学号来创建);也不能按照日期来递增,比如身份证号码,中间生日那一段就不能出现 32 日……

它生成的用户名完全是组件自己设定的,我观察了一下,好像也是有规律,都是 jlord_test_user112 、jlord_test_user113 这样的,也就是说,前半部分英文是固定值,后面的数字可以递增。

那么,可以从源代码中直接找到 jlord_test_user 这部分,修改为学号的固定部分,让后面的数字来递增;或者直接从源代码中删除 jlord_test_user 这部分,只留下数字,并且设定好数字长度和起始号码,就能递增直到得到全部的学生学号。

但愿你们的学号是连续的,否则中间有空缺,就会产生无效的学号了,呵呵。

附件是我测试时的效果。我输入了 120 作为数量,大约 5秒钟就生成了 120 个用户名,密码是随机的,信箱是随机的,注册时间也是随机的,连是否启用都是随机的。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年11月06日 10:29 - 2008年11月06日 11:55 #6 作者: Joomla之门
刚才看了一下,控制自动生成用户名的文件是 /administrator/components/com_jlord_generator/controller.php 。

在该文件中,搜索 jlord_test_user 并替换为入学年份,如 2006,一共需要替换 5 处。经过测试成功了,生成的用户名不再含有 jlord_test_user,而是以 2006 开始;

第二步:在该文件的第 533 行,可以看到如下代码:
$type		= "yahoo.com|gmail.com|joomlord.com|edu.net.vn|24h.com.vn|google.com.vn";

这就是随机生成的注册信箱域名。如果你们学校的有自己的 email 服务器,而且要求学生都使用这个信箱,那么就可以修改为:
$type		= "xxu.edu.cn";
 

这样就可以让生成的注册用户都使用同一个信箱域名,只不过 @ 前面的部分还不能控制。考虑到所有学生将来都要手动修改自己的资料,那么这一步也可以跳过;

自动生成的用户名中,动态递增的部分是由 $tmp 这个变量控制的。如果懂编程的朋友改造一下,可以让用户自定义动态数字部分的长度和起始号码、递增量,甚至禁用数字,那就完美了。

另外,在 JLord Users Generator 组件的后台,密码也是可以手动指定固定值的,或者是递增的密码序列。如果要给大量学生产生密码,最好使用固定值,这样就能让他们自己修改了。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!
最后修改: 2008年11月06日 11:55 由 ilm1605.

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年11月06日 11:57 #7 作者: Joomla之门
汗一个先!

我前面这个 hack 方法完全没有必要。JLord Users Generator 的作者已经提供了手动修改这些参数的选项。

鉴于这个组件功能不错,刚才已经将它汉化了。

下载 JLord Users Generator 中文版

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年11月06日 20:22 #8 作者: 碧空幻影
:'( :'( :'( :'( :'(哎呀,不知道怎么感谢您啊,我亲爱的白大哥!您天天那么忙还要为了我这么一个小小的问题研究这么多!!感动的不行了……谢谢谢谢!!!!

  此致
敬礼!

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年11月06日 20:23 #9 作者: 碧空幻影
不行,还得谢一个!大家都要拿出这种热情来我们才能走的更远更顺!!

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年11月06日 20:49 #10 作者: yooyooh
对,大家都来做贡献,有些低级汉化就让我们搞搞(也没必要都搞),老白腾出时间干大事。

Every man dies, Not every man really lives.

登录 或者   注册一个会员帐号 来参与讨论

更多
2010年11月13日 12:43 #11 作者: HarryDean
这个正好需要就看了下,果然有很大启发。感谢白站长所做的这些工作 。否则像这样批量导入用户的问题会让不少人头疼的。

登录 或者   注册一个会员帐号 来参与讨论