来源:http://trac.seagullproject.org/wiki/Integration/FUDforum

介绍

这个链接是http://www.wastetomarket.com/,如果你点击了论坛,你会发现我以我的seagull站点的header格式和CSS使用FUDforum。

事实上我所称的FUDforum并不是真的嵌入到Seagull中,而只是简单的集成以提供一个具有普通外观并允许注册,这样用户不会意识到他们正在使用不同的应用程序。这样做好像是已经达到目的了,但是要使用它还得花费一番工夫。

FUDforum 安装

我分别在seagull/modules和seagull/www目录下创建了一个文件夹forum。然后运行FUDforum安装程序,让安装程序把FUDforum库文件放在seagull/modules/forum/FUDforum以保证其安全性,并将所有web可访问的文件放在seagull/www/forum。

集成模板

我将FUDforum模板编辑成使用导入的CSS样式。CSS通过在我的论坛页面的header调用style.php导入,并添加forum成一个模块。部分代码如下(你可以在forum的html源代码中查看全部代码):

style.php?navStylesheet=SglDefault?_MultiLevel&moduleName=forum

然后我打开FUDforum附带的forum.css文件另存为seagull/www/themes/myTheme/css/forum.php,这样我就可以使用var.php中的CSS变量以在forum中使用适当的颜色,因为当你在css请求中指定一个模块时seagull会试图在CSS文件夹中寻找一个以模块命名的php文件。

我也编辑了FUDforum的header模板–我在header放置了一个ID为sgl的div,并在sgl中嵌入了另一个名为header的div,它用来显示网站名称。所有#sgl,#header会应用到论坛的header部分,而不是另外创建一个风格。

集成导航

我改变了论坛的导航菜单将它包含在seagull所提供ul/li结构中以符合样式的层次。

Single Sign On

至于用户登陆部分,FUDforum提供了一个forum_login.php脚本。因为forum已经安装在seagull的目录结构中,所有可以直接调用。我是这么使用的:

require SGL_MOD_DIR . '/forum/FUDforum/scripts/forum_login.php'

然后在LoginMgr管理类中调用论坛的login/logout函数–如果登陆成功,则创建一个cookie,退出时将它清除。

这个功能需要一个uid,如果你能将你的论坛userid #'s和你的seagull #'s同步,它会运行的和我的速度一样快(当有新的seagull用户注册或导入时,通过调用FUDforum的api来创建一个论坛用户,将两个用户表的sequence记录处于同一个水平,即ID是一样的)。这并不是最佳方法,而且并不是所有网站都可能这么做,所以你可能需要做一些事情如创建一个包含你的论坛userid's和seagull id's的参考表以跟踪这些信息。还有一点需要注意,FUDforum的api脚本包含一些微bug,我不得不继续跟踪以使它正常工作。

我仍然在清除一些东西,我不得关闭FUDforum的用户注册和登陆功能,因此一切事情通过Seagull网站处理。 – Clay Hinson

More Single Sign On

  • 在seagull/modules/forum/scripts/forum_login.php文件中修改下列:
$GLOBALS['PATH_TO_FUD_FORUM_GLOBALS_PHP'] = dirname(__FILE__).'/GLOBALS.php';
  • 在该文件的注释之后,定义缺少的常量:
if (!defined('__request_timestamp__')) {
    define('__request_timestamp__', time());
}
  • 复制你的seagull用户表到fud26_users表或者是你的forum中的相关用户表
  • 当你安装FUD时,保留它为你创建的两个用户记录:一个匿名用户,两个管理用户
  • 在这些记录之后插入你的Seagull用户表中所有用户,不包括seagull的匿名和管理员记录
  • 最少必须有如下字段 id,login,alias,theme和user_opt
  • 为所有用户设置 theme = 1
  • 为所有用户除了管理员设置 users_opt = 4357110
  • 删除下列字段UNIQUE索引 login, email和alias
  • 去掉自动增量,因为seagull会控制主键

Single Sign On - Round 3

  • 取消更新的密码验证(Seagull会管理密码,而不是FUD),做下列几步:

o 使用管理员设置你的FUD文件可写

        o 编辑seagull/www/forum/theme/default/register.php
        o 注释行1723 - 1729 
  • 取消FUD注册
    • 通FUD管理界面可以取消
  • 要删除settings → Required Information
    • 以管理员登陆FUD
    • Admin Control Panel → Template Management → Template Editor → (edit) Template Set Selection → register.tmpl
    • 单击'update_user'区段
    • 注释掉除了email以外的所有字段,你可以将email标志为disabled。
    • 所有的disabled或注释掉的字段必须作为隐藏字段传递。
  • 删除注册和登陆导航链接
    • 进入模板编辑器
    • 编辑usercp.tmpl文件注释掉注册和登陆链接
  • 从主页上删除快速登陆链接
    • 手工编辑/modules/forum/thm/default/tmpl/index.tmpl
    • 在99行左右你会发现下列代码,删除。一旦你修改了你就必须从FUD管理控制面板的主题管理器中重建你的主题。

{IF: fud_real_user}{TEMPLATE: quick_login_loged_in}{ELSE}{TEMPLATE: quick_login_on}{END}

  • 从POST模板中删除‘post password'链接
    • 进入模板编辑器,选择post.tmpl,然后选择post_password,注释掉html,以隐藏字段恢复密码输入
 
integration/fudforum.txt · 最后更改: 2010/05/30 00:21 (外部编辑)
 
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.2