将PHP论坛集成到Django站点的最佳方法?

时间:2009-05-23 16:29:16

标签: django

假设您正在运行Django站点,并且有一个遗留的PHP论坛来支持和集成到您的站点,因为目前的Django论坛解决方案还不够成熟。

这样做的最佳方式是什么?

目前我有一个简单的视图,它呈现了一个非常简单的模板,它扩展了我网站的基本模板,而内容区域只有一个<IFRAME>,它将论坛保存为src。一个小的jQuery函数用于最大化<IFRAME>的高度(一旦完成加载),以便包含100%的论坛内容。

但所有这些听起来都很尴尬。你会怎么做?

2 个答案:

答案 0 :(得分:5)

有几个选择。没有一个是理想的(但混合两个平台永远不会!)

  1. 按照你的建议使用iframe(不好,因为地址栏中的地址始终是django页面的地址,如果有人在论坛上处理链接,那将是PHP论坛,而不是django持有者)

  2. 使用iframe但不是一直使用相同的src,解析URL并将相对位附加到iframe的src上。即如果django看到/forum/this-url,请将src设置为http://forum-address/this-url并确保所有链接都定位parent。这样做的好处是始终在地址栏中显示正确的链接(而不是始终是/ forum /)。您需要破解论坛才能使其正常工作。

  3. 代理内容并将其正确地注入页面。您需要传递cookie,它可能会变得非常混乱,但在大多数情况下,这是一种很好的集成方式,因为您的链接始终是正确的。您需要对论坛主题进行屠宰,以删除所有内容,包括<body>代码。

  4. 以与Django网站相同的方式为您的论坛设置主题。这将提供最佳性能,但如果您在django模板中使用动态内容,则可能会遇到问题。解决这个问题的一个选择是让django模板将内容缓存到内存缓存并使用php-memcache将它们拉出到你的论坛模板中。

  5. 我过去做过3和4。我用3表示一个非常简单的表格(所以不必像你那样处理cookie和会话)。我使用4将FluxBB论坛集成到Wordpress安装中。这两个PHP,但是在 Wordpress中加载FluxBB 会更加臃肿。我将动态模板的内容缓存到了memcache中,然后在论坛模板中将它们拉出来。

    为此,我可能建议选择#4。这是一个痛苦的屁股必须保持两个主题,但它是迄今为止表现最快的解决方案。

答案 1 :(得分:1)

当我阅读问题摘要时,我立即认为您需要某种脚本,可以通过Django中的Dispatcher链接到信号,以将用户数据库从Django站点同步到论坛。这将使事情的身份验证方面受到控制 - 但您仍然需要执行Oli建议的其中一项,以使它们看起来相同。

主题可能是最无障碍的路线,但这并不是说它会很容易!