9 与Drupal6站点整合用户

admin 的头像
Submitted by admin on 星期四, 2015-06-25 09:42

者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们首先来看一个简单的实例。如果一个单位使用了Drupal6搭建了自己的网站,觉得比较好用,在另一个新建网站上使用了Drupal7,然后提出了这样的需求,那就是Drupal6站点的用户能够直接登录到Drupal7上,这里假定两个网站都放在同一个服务器上。

Drupal版本:

8 统一用户登录

admin 的头像
Submitted by admin on 星期四, 2015-06-25 09:41

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
如果我们的站点非常简单,那么使用Drupal自带的用户系统就可以了。对于稍微复杂一点的站点,比如我们的站点使用Discuz作为论坛,此时就有了Drupal与Discuz用户集成的需求。除了与常见的Discuz集成以外,在实际中,还存在与.net系统,Java网站系统的用户集成。Drupal的用户系统,为我们提供了这样的机制,能够方便的与各种异构系统相集成。

Drupal版本:

7 钩子hook_username_alter

admin 的头像
Submitted by admin on 星期四, 2015-06-25 09:40

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
最后,让我们在这个模块中,再增加一个需求,那就是为用户增加一个真实姓名,当显示用户名字时,我们使用真实姓名来代替默认的username。

Drupal版本:

6 钩子hook_user_login

admin 的头像
Submitted by admin on 星期四, 2015-06-25 09:38

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com​
接下来,让我们看一下,当用户登录时,检查他是否创建了班级节点,如果没有创建,提示它创建,如果创建了但是信息不完善,提示他完善班级的资料信息。向module文件中添加以下代码:

Drupal版本:

5 钩子hook_user_view

admin 的头像
Submitted by admin on 星期三, 2015-06-24 10:00

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们现在想要在用户的主页显示班级信息,这样用户登录进来就能看到自己的班级。向module文件中添加以下代码:

Drupal版本:

4 班主任模块

admin 的头像
Submitted by admin on 星期三, 2015-06-24 09:59

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我们来看一个来自于实践的实例,有这样的一个网站需求,它用来展示一个中学各个班级的相关信息。注册用户为班级的班主任,每个班主任可以创建一个班级。在这里,班主任就是Drupal中的用户,班级就可以处理成为Drupal中的节点,一个用户只可以创建一个班级节点,这有相应的第三方模块可以控制,我们在这里不讨论这个。在这里,我们关注一个与我们的用户系统相关的需求,当班主任注册自己的帐户时,他希望能够同时输入班级的名字,在创建自己的帐户时,同时创建了班级节点;当班主任登录时,检查它所填写的班级信息的完整性,如果部分信息没有填完,将其重定向到班级的编辑页面,并提示他完善班级信息。

Drupal版本:

3 用户系统的钩子函数

admin 的头像
Submitted by admin on 星期三, 2015-06-24 09:57

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com​
在Drupal对用户进行各种相关操作时,为其它模块提供了相应的钩子函数,方便与Drupal系统交互。我们来看看Drupal中用户模块都提供了哪些钩子函数,这些信息可参看user.api.php文件。

Drupal版本:

2 测试用户是否登录了

admin 的头像
Submitted by admin on 星期三, 2015-06-24 09:56

​作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

在请求期间,测试用户是否登录的标准方式,是检查$user->uid是否为0。Drupal有个名为user_is_logged_in()的函数可用来检查登录用户(还有一个相应的user_is_anonymous()函数用来检查匿名用户):

Drupal版本:

页面

Subscribe to Think in Drupal RSS