2010-03-09 98 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()返回到默認值的數據庫之間進行切換。