整合舊網站資料至 Drupal (利用 node_save() 建立 Node)

要從舊有的網站,轉移至 Drupal,是否很頭痛?? 怎麼 Drupal 建立一個 NODE 會改動這麼多資料表啊!! 該怎麼好呢? 請永遠緊記 Drupal API 是你的朋友!

透過編寫程式建立 Drupal Node

我們的編寫步驟及方向流程:

  1. 如果你還未會建立 Drupal 模組或要從外部執行,可使用 bootstrap 將它們連結起來。
  2. 從其他程式的資料庫或任何途徑取得你想要的資料 (PHP 你不會? 那請關閉此網頁)
  3. 透過 Drupal API node_save() 儲存到 Drupal 資料庫中
  4. 上 Youtube 看一會短片,讓程式自己運行

簡單示範程式碼:

// 打開 Drupal index.php,將前面兩行複製一下就可以
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

$node = new stdClass(); // 建立 Node Object.

module_load_include('inc', 'node', 'node.pages');

/**
 * 自動準備好一些該有的參數
 * 因此在下面只需填上你要修改的內容便可
 * 如缺乏這一步,你需要獨一編寫。
 */
node_object_prepare($node); 

/**
 * 好戲現在開始
 * 從其他資料庫或程式中取得數據,然後再寫入
 * 使用 print_r($node) 或 Devel dsm($node) 了解有什麼可用
 */
 
$node->type = 'story';
$node->title = "Node 標題";
$node->body = "Node 內容";

$new_node = node_submit($node); // 準備儲存前的一些資料
node_save($new_node); // 最重要是這一步 !! 

就是這麼簡單。

透過現有模組

當然,如果你真是不會 PHP,而又沒有好好聽我上面所說而關閉此頁面的話,可以考慮使用現有的 Drupal 模組來達成。

到 Drupal.org 搜尋 csv import, node import, X improt 就有一大堆,我也不知那個好,跟我分享哦 :)

1 個回應主題: 整合舊網站資料至 Drupal (利用 node_save() 建立 Node)

#1

Node Import 我用過效果很好~
http://drupal.org/project/node_import

寫下您的回覆

電子郵件不會公開