Feeds & Node Import: Quick Importing Tools for Drupal

Post on 03-Jul-2015

2.739 views 7 download

description

@DrupalCamp Taipei 2012

Transcript of Feeds & Node Import: Quick Importing Tools for Drupal

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

DrupalCamp Taipei 2012DrupalCamp Taipei 2012

Huei-Horng Yo 游輝宏 hiroshi@gate.sinica.edu.tw✉

中央研究院生物多樣性研究中心TaiBIF 台灣生物多樣性資訊入口網

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

2

講者這個傢伙講者這個傢伙

● 游輝宏 Huei-Horng Yo● 不會佛山無影腳● 也不吃檳榔

● 江湖渾名: Hiroshi Yui, hiroshiyui● 中央研究院生物多樣性研究中心、 TaiBIF● Drupal 使用歷程: D5 D7→

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

3

生物多樣性資訊與生物多樣性資訊與 DrupalDrupal

TaiBIF.tw

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

4

生物多樣性資訊與生物多樣性資訊與 DrupalDrupal

Scratchpads.eu

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

5

生物多樣性資訊與生物多樣性資訊與 DrupalDrupal

www.LifeDesks.org

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

6

大綱大綱

● 無碼● 需求● 工人智慧✖ 自動處理✔● Node Import & Feeds● 原始資料整理● 實例● 擴充

無碼無碼

● 無程式碼盡量少貼程式碼,以交代概念為主● 技術狂人、碼農們表示遺憾● 時間可能也不夠…

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

7

需求需求

● 內容管理系統● 有內容才能管理● 「建資料」● 「轉資料」

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

8

工人智慧 自動處理✖ ✔工人智慧 自動處理✖ ✔

● 電腦不該只是高級打字機● 複製、貼上不見得更高明● 工人智慧:浪費錢(經常是稅金)、浪費人

力、浪費時間、笨● 直接操作資料庫:快、聰明、危險、暴力● 平衡點:借助 Feeds 或 Node Import 輔助處

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

9

工人智慧 自動處理✖ ✔工人智慧 自動處理✖ ✔

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

10

“Hackers (and creative people in general)

should never be bored or have to drudge at

stupid repetitive work, because when this

happens it means they aren't doing what only

they can do — solve new problems.”

– How To Become A Hacker by Eric Steven Raymond

Node Import & FeedsNode Import & Feeds

● 夠力的自動匯入內容資料工具● Node Import 推薦 D7 使用者改用「更好的」

的 Feeds● Node Import 目前仍有些地方較 Feeds 好● D6: Node Import● D7: Feeds

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

11

原始資料整理原始資料整理

● 格式、格式化● CSV, XML, JSON, etc.

● phpMyAdmin● OpenOffice.org Calc (UTF-8 Friendly)● Views● 限制 (relation, reference)

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

12

原始資料整理原始資料整理

● 試算表● Microsoft Excel, OpenOffice.org Calc● 原始用途:試算(成績、帳務、統計…)● 但是卻常被拿來做一些試算以外的用途

● 資料整理● 並非不適合,反之,好好利用一些函數功能,試算表是

很有力的資料清理工具

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

13

原始資料整理原始資料整理

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

14

實例實例

● TaiBIF● Wikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

15

實例:實例: TaiBIFTaiBIF

● 任務:將舊網站內容轉至 Drupal● 用 phpMyAdmin 倒出 (dump) 資料庫表格

● CSV● 保留欄位名稱

● 用 OpenOffice.org Calc 整理● 應付 UTF-8 編碼的 *.csv files

● 用 Node Import 匯入資料

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

16

實例:實例: TaiBIFTaiBIF

● 用 phpMyAdmin 倒出 (dump) 資料庫表格● CSV● 保留欄位名稱

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

17

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

18

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

19

實例:實例: TaiBIFTaiBIF

● 用 OpenOffice.org Calc 整理● 應付 UTF-8 編碼的 *.csv files

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

20

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

21

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

22

實例:實例: TaiBIFTaiBIF

● 用 Node Import 匯入資料

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

23

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

24

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

25

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

26

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

27

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

28

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

29

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

30

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

31

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

32

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

33

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

34

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

35

實例:實例: TaiBIFTaiBIF

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

36

實例:實例: TaiBIFTaiBIF ~番外篇~番外篇

● 原本 TaiBIF 是用 D6 改版,臨時決定改用 D7● 評估 D7 的 Entity 適合我們未來的開發策略

● 已經匯進 D6 的資料,難道又要用工人智慧重建?

● 用 Views 輸出 RSS● 再用 Feeds 匯入 RSS ,快速轉移至新版

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

37

實例:實例: TaiBIFTaiBIF ~續戰篇~續戰篇

● 比內建的 Aggregator 更具彈性● 切合 TaiBIF 「新聞與活動」混搭需求

● 汲取各處台灣生物多樣性相關新聞訊息 (RSS)● 蕃薯藤自然新聞● 環境資訊中心● 林務局

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

38

實例:實例: TaiBIFTaiBIF ~續戰篇~續戰篇

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

39

實例:實例: TaiBIFTaiBIF ~續戰篇~續戰篇

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

40

實例:實例: WikiquoteWikiquote

● 任務:建立自己的 Wikiquote典藏庫● Feeds 搭配MediaWiki API模組● 至 /config/content/formats 建立一特用格式● 至 /admin/structure/types 新增一內容類型● 設定 Feeds, XPath, etc...● 匯入

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

41

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

42

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

43

● 所有的 Wikimedia 站台資料,包括維基百科、維基語錄備份資料:● http://dumps.wikimedia.org/backup-index.html

● 嘗試用 Feeds 匯入 XML文件資料

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

44

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

45

● 安裝MediaWiki API模組● https://drupal.org/project/mediawiki_api● 輔助我們把MediaWiki語法文件轉為 HTML

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

46

● 至 /config/content/formats 建立一特用格式● MediaWiki API URL

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

47

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

48

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

49

● MediaWiki API URL● http://en.wikipedia.org/w/api.php● 小量使用 Wikipedia官方 API URL 無妨,但是若大量使用,建議在自己機器架一套MediaWiki ,不要耗用 Wikimedia 的公共資源

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

50

● 至 /admin/structure/types 新增一內容類型

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

51

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

52

● 安裝 Feeds XPath Parser模組● https://drupal.org/project/feeds_xpathparser

● 設定 Feeds, XPath, etc...

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

53

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

54

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

55

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

56

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

57

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

58

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

59

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

60

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

61

/mediawiki

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

62

/mediawiki/page

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

63

<mediawiki>

<page><title>標題 </title><id>ID</id><revision>

<text> 內容 </text></revision>

</page>

</mediawiki>

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

64

/mediawiki/page

(/mediawiki/page/)title

(/mediawiki/page/)revision/text

(/mediawiki/page/)id

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

65

● 匯入● /import

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

66

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

67

實例:實例: WikiquoteWikiquote

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

68

擴充擴充 FeedsFeeds

● 絕大部分是現成的 (Fetcher, Parser)● 僅需針對自己的 Mapping, Importing特殊需

求寫 Processor● 分而治之、良好的架構

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

69

擴充擴充 FeedsFeeds

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

70

From: http://labs.treehouseagency.com/feeds-docs/

閉場黑閉場黑

● 重複的事,多交給電腦,少用點人工● 好的工具與工作流程帶你上天堂● System 不只是電腦軟硬體

● 系統含括的是人、信息(資訊、內容)、機器、制…度 諸多環節

● Content Management System亦如是,內容加值應用、社群經營等項目更重要,少把精力耗在或許原本可以自動處理的「建資料」、「轉資料」

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

71

Thanks!Thanks!

Q&A Time

Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具

72

NOTICENOTICE● The Druplicon image is licensed under the GPL License which covers

all items on git.drupal.org.

● Any trademarks herein are the property of their respective owners.