feeds & node import: quick importing tools for drupal

73
Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具 DrupalCamp Taipei 2012 DrupalCamp Taipei 2012 Huei-Horng Yo 游輝宏 [email protected] 中央研究院生物多樣性研究中心 TaiBIF 台灣生物多樣性資訊入口網

Upload: huei-horng-yo

Post on 03-Jul-2015

2.741 views

Category:

Technology


7 download

DESCRIPTION

@DrupalCamp Taipei 2012

TRANSCRIPT

Page 1: Feeds & Node Import: Quick Importing Tools for Drupal

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

DrupalCamp Taipei 2012DrupalCamp Taipei 2012

Huei-Horng Yo 游輝宏 [email protected]

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

Page 2: Feeds & Node Import: Quick Importing Tools for Drupal

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

2

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

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

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

Page 3: Feeds & Node Import: Quick Importing Tools for Drupal

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

3

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

TaiBIF.tw

Page 4: Feeds & Node Import: Quick Importing Tools for Drupal

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

4

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

Scratchpads.eu

Page 5: Feeds & Node Import: Quick Importing Tools for Drupal

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

5

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

www.LifeDesks.org

Page 6: Feeds & Node Import: Quick Importing Tools for Drupal

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

6

大綱大綱

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

Page 7: Feeds & Node Import: Quick Importing Tools for Drupal

無碼無碼

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

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

7

Page 8: Feeds & Node Import: Quick Importing Tools for Drupal

需求需求

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

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

8

Page 9: Feeds & Node Import: Quick Importing Tools for Drupal

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

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

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

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

9

Page 10: Feeds & Node Import: Quick Importing Tools for Drupal

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

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

Page 11: Feeds & Node Import: Quick Importing Tools for Drupal

Node Import & FeedsNode Import & Feeds

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

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

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

11

Page 12: Feeds & Node Import: Quick Importing Tools for Drupal

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

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

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

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

12

Page 13: Feeds & Node Import: Quick Importing Tools for Drupal

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

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

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

很有力的資料清理工具

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

13

Page 14: Feeds & Node Import: Quick Importing Tools for Drupal

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

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

14

Page 15: Feeds & Node Import: Quick Importing Tools for Drupal

實例實例

● TaiBIF● Wikiquote

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

15

Page 16: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

● CSV● 保留欄位名稱

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

● 用 Node Import 匯入資料

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

16

Page 17: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

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

17

Page 18: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

18

Page 19: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

19

Page 20: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

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

20

Page 21: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

21

Page 22: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

22

Page 23: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

● 用 Node Import 匯入資料

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

23

Page 24: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

24

Page 25: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

25

Page 26: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

26

Page 27: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

27

Page 28: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

28

Page 29: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

29

Page 30: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

30

Page 31: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

31

Page 32: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

32

Page 33: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

33

Page 34: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

34

Page 35: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

35

Page 36: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: TaiBIFTaiBIF

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

36

Page 37: Feeds & Node Import: Quick Importing Tools for Drupal

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

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

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

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

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

37

Page 38: Feeds & Node Import: Quick Importing Tools for Drupal

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

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

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

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

38

Page 39: Feeds & Node Import: Quick Importing Tools for Drupal

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

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

39

Page 40: Feeds & Node Import: Quick Importing Tools for Drupal

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

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

40

Page 41: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

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

41

Page 42: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

42

Page 43: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

43

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

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

Page 44: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

44

Page 45: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

45

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

Page 46: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

46

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

Page 47: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

47

Page 48: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

48

Page 49: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

49

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

Page 50: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

50

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

Page 51: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

51

Page 52: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

52

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

● 設定 Feeds, XPath, etc...

Page 53: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

53

Page 54: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

54

Page 55: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

55

Page 56: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

56

Page 57: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

57

Page 58: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

58

Page 59: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

59

Page 60: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

60

Page 61: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

61

/mediawiki

Page 62: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

62

/mediawiki/page

Page 63: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

63

<mediawiki>

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

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

</page>

</mediawiki>

Page 64: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

64

/mediawiki/page

(/mediawiki/page/)title

(/mediawiki/page/)revision/text

(/mediawiki/page/)id

Page 65: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

65

● 匯入● /import

Page 66: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

66

Page 67: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

67

Page 68: Feeds & Node Import: Quick Importing Tools for Drupal

實例:實例: WikiquoteWikiquote

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

68

Page 69: Feeds & Node Import: Quick Importing Tools for Drupal

擴充擴充 FeedsFeeds

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

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

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

69

Page 70: Feeds & Node Import: Quick Importing Tools for Drupal

擴充擴充 FeedsFeeds

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

70

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

Page 71: Feeds & Node Import: Quick Importing Tools for Drupal

閉場黑閉場黑

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

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

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

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

71

Page 72: Feeds & Node Import: Quick Importing Tools for Drupal

Thanks!Thanks!

Q&A Time

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

72

Page 73: Feeds & Node Import: Quick Importing Tools for Drupal

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.