2011-01-25 80 views
0

我有3個drupal站點。 2個drupal站點是公共站點(.com站點),第三個站點是防火牆後面的內部站點。防火牆後面的站點運行在Linux和MySQL上,但是從辦公室MS-SQL中提取數據並從中創建節點。問題是:Drupal內容同步

如何從辦公室drupal站點更新其他2個drupal站點內容?

注意:我可能不需要公共站點中的所有字段與內部站點中的所有字段相同。我希望有一個設置,不僅可以將內容推送到兩個外部站點,而且如果內部站點更新節點,還可以在外部站點更新內容。

謝謝。

回答

1

您可以在外部網站上使用Feeds module來輪詢辦公室網站的內容並導入新的和更新的內容。由於您可能不需要外部網站上的所有字段,因此Feeds會讓您將所需的字段映射到辦公室網站的外部網站上的字段。

根據您需要從辦公室網站獲得的數據,您可能需要使用Views來自定義可用的訂閱源。

+0

感謝您的快速回答。我無法從辦公室網站上獲取內容,因爲它位於防火牆後面,這就是爲什麼我以某種方式將內容推送到外部網站。你知道我可以用Feeds模塊或其他模塊來做到嗎? –

+0

@redhatlab - 提要可以從服務器本地文件系統上的文件讀取。只需讓您的辦公場所定期將文件上傳到服務器,然後讓Feed每隔X分鐘讀取一次該文件。 – Greg

+0

@redhatlab在這種情況下,發佈和訂閱模塊應該做你正在尋找的東西:http://drupal.org/project/publish http://drupal.org/project/subscribe –

0

一種工具而不是現成的解決方案,但我使用CodeServer來將設置和內容從一個站點同步到另一個站點。摘自專案頁面:

<?php 
    // Set the node id of the node we are going to copy. 
    $nid = 1234; 
    // Instantiate CodeServer using the configuration named 'my_remote_site'. 
    $remote = new CodeServer('my_remote_site'); 
    // Load a node from the remote site. 
    $node = $remote->node_load($nid); 
    // Save the node on the local site. 
    node_save($node); 
?> 
+0

@Mamoun好點,我現在編輯我的帖子。 –