肯定有很多方法可以让猫在这上面剥皮。我下载了 Galleon 2 论坛代码以查看 user.cfc
您可以修改此函数中的查询以从 CMS 中提取所需的字段:
<cffunction name="getUser" access="public" returnType="struct" output="false" hint="Returns a user.">
<cfquery name="qGetUser" datasource="#variables.dsn#">
SELECT
[cmsusertable].cmsid as ID,
[cmsusertable].cmsuser as username,
[cmsusertable].cmspassword as password,
[cmsusertable].cmsemail as emailaddress,
[cmsusertable].createDate as datecreated,
[cmsusertable].cmsactive as confirmed,
[cmsusertable].cmssignature as signature,
[cmsusertable].cmsavatar as avatar
FROM
[cmsusertable]users
WHERE
[cmsusertable].username = <cfqueryparam value="#arguments.username#" cfsqltype="CF_SQL_VARCHAR" maxlength="50">
</cfquery>
请记住,您必须按照 Galleon 的期望从查询中返回字段,因此使用“as”语句将 CMS 数据库字段重命名为 Galleon 期望的字段。现在,您的 CMS 表中可能没有其中一些无关字段,例如签名/头像。如果您可以扩展您的 CMS 表和用户例程以适应这些字段,那可能会很好。或者您可以修改 Galleon 中的配置文件例程以仅更新签名/头像而不是整个配置文件。如果您确实使用 Galleon 表来存储此信息,请记住添加一个连接以包含这些请求重新统一用户数据的字段。
您还必须修改项目中大约 4 个文件(user.cfc、conference.cfc、message.cfc、thread.cfc)中的联接,以改为与您的 CMS 用户表联接。
最后,您必须修改 login.cfm 以简单地尝试使用 CMS 用户会话中的信息设置 session.user 结构,如果失败,则将用户重定向回 CMS 登录页面。
总的来说,我认为这不会太难。我确定我错过了一些东西,但也许那会让你继续前进。