You are here

个人主页改造完成

g089h515r806 的头像
Submitted by g089h515r806 on 星期日, 2009-05-17 14:33

大家可以测试一下,注册会员现在可以写博客了,可以交朋友了.除了这些新增的功能以外,最主要的一点,个人主页已经独立了出来.

       如果你退出以后,不管你是浏览的哪个页面,重新登录后,都会导向到你的个人主页.最主要的,个人主页与其它页面使用了不同的页面模板,所有个人主页相关的文章都使用了同一个模版.当然也可以为个人主页设置完全不同的主题,将来还有可能为它设置一个子域名.这是后文了.

       现在的个人主页比以前增强了许多,最主要的是它向SNS站点迈出了一大步.我们知道,大多数的SNS都是由个人主页,好友关系,小组等等组成的,在SNS站点中,个人主页是一个枢纽,占有重要的位置.

       改造好了小组的主页以后,我就想如何改造用户的个人页面,这一点很重要,我希望个人主页能够像小组一样,能够具有独立的主题,个人的文章显示在这个主题下面.在这里,我就拿博客作了测试.

       对小组的研究,使我认识到了上下文的重要性,在OG模块中,上下文具有极其的重要性,为了达到小组的独立性,我决定模仿OG模块为个人主页实现上下文,然后再通过上下文设置路径和主题.这样就可以根据上下文将个人主页独立开来了.

       另外为了设置个人主页上的导航,我继续模仿小组的方式,但是这一次碰了壁,因为最终的解决方案是,必须修改user_uid_optional_to_arg函数,但是我发现这个函数不能够被覆写,也就是其它模块不能够修改这个函数中的设置,也就是说,我不能够在自己的模块中为这个函数添加上下文,我不知道有没有更好的办法,如果不能够覆写user_uid_optional_to_arg的话,那么我必须要直接修改这个函数,在这个函数中加入用户上下文的概念,而这个函数是位于user模块中的,Drupal的核心模块。直接修改它的代码,可以实现我的效果,但是需要打个补丁,将来升级起来比较麻烦。

       后来经过权衡,决定自己定制一个区块,专门用于用户的个人页面的导航。当然,后者失去了一些灵活性。

       个人页面导航实现后,开始改造好友的功能,我使用了relationship模块,最主要的是改造它提供的默认的Views,我把它提供的Views一个一个的比较了一下,选出了我需要的,同时作了修改,比如好友动态区块的实现。就是我基于原有的Views改造而成的。

       最后,覆写了preprocess_page函数,为个人主页设置了独立的页面模板。

评论

skswujian 的头像

谢谢你的分享,新手入门跑这来学习模块,我还不会编呢,只会使用和体验加测试

g089h515r806 的头像

其实所有的模块,只要能够用于Drupal,就可以应用于小组,也可以应用个人主页,所需要的改动就是加上个上下文作为限制.比如说个人,就是加个过滤条件.不过有些地方需要稍微的改动一下.