【问题标题】:Drupal: Sharing content across MultisiteDrupal:跨多站点共享内容
【发布时间】:2010-03-09 16:13:39
【问题描述】:

我有 2 个内容类型相似的网站。

假设一个事件内容类型,其中包含一些 cck 字段。

site1:事件(标题、正文、图像) site2:事件(标题、正文、图片、onsite1)

通过 site2-events 的额外字段,我想让用户有可能在(主)site1 上发布他的活动。

Site1 和 site2 都在 1 个数据库上,尽管来自 site2 的表带有前缀。

如何将 site2 制作的内容添加到 site1? (有没有不借助 sql 的简单方法来做到这一点?我此时正在使用 nodeapi 在提交事件时做一些额外的事情。)

【问题讨论】:

    标签: drupal


    【解决方案1】:

    既然你说你已经在使用 hook_nodeapi 似乎你可以这样做:

    if ($op == 'insert' && (see if checkbox is checked here))
    

    ...然后switch to the other site's database,做一个node_save,并切换回当前站点的数据库,让Drupal完成它的业务。

    【讨论】:

    • 两个网站都在一个数据库中,因为某些表(分类)是共享的。 site2 的表带有前缀。 ,因此使用 db_set_active() 切换数据库将不起作用。除非我错过了什么。我会尽快查看您的链接。
    【解决方案2】:

    您也许可以使用 Mike-Crittenden 所描述的 db_set_active(),即使它位于同一个数据库中,因为 $db_url 和 $db_prefix 都可以是数组,而不是单个字符串。

    这样你可以为'default'和'alternative' db使用相同的db_url,但使用不同的前缀在数据库之间切换,使用db_set_active('alternative')和db_set_active()返回默认值。

    【讨论】:

      【解决方案3】:

      很多人为此使用 Feed API / Feeds module。您可以按分类术语、内容类型以及您需要的任何内容进行过滤,这样您就不必从主站点导入所有内容。很棒的工具。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-23
        • 1970-01-01
        • 2013-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-10
        • 2010-09-29
        相关资源
        最近更新 更多