2010-03-09 81 views
2

我有2个类似内容的网站。Drupal:跨多站点共享内容

让我们说一个事件内容类型,其中包含一些cck字段。

现场1:事件(标题,正文,图像) 站点2:事件(标题,正文,图片,onsite1)

通过额外的领域,在站点2的事件我想给可能给用户发布他在(主)网站上的活动1。

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

如何将site2制作的内容添加到site1? (有没有一种简单的方法来做到这一点,而不诉诸sql?我使用nodeapi在这个时候做一些额外的事件提交时。)

回答

1

既然你说你已经使用hook_nodeapi它似乎是你可能只是这样做:

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

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

+0

这两个网站都在1个数据库中,因为共享了一些表格(分类法)。 site2的表格是前缀。 ,所以使用db_set_active()的数据库切换将不起作用。除非我错过了什么。我会尽快查看你的链接。 – Jozzeh 2010-03-11 11:33:21

0

很多人使用Feed API/Feeds module。您可以根据分类术语,内容类型进行过滤,无论您需要什么,都无需从主站点导入所有内容。伟大的工具。

+0

会看看它。谢谢 – Jozzeh 2010-03-11 11:28:16

1

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

这样,您可以对'default'和'alternative'db具有相同的db_url,但是使用不同的前缀在使用db_set_active('alternative')和db_set_active()返回到默认值的数据库之间进行切换。