Upload
huei-horng-yo
View
2.743
Download
7
Embed Size (px)
DESCRIPTION
@DrupalCamp Taipei 2012
Citation preview
Feeds & Node Import 快速匯入、轉移既有內容至 Drupal 的便利工具
DrupalCamp Taipei 2012DrupalCamp Taipei 2012
Huei-Horng Yo 游輝宏 [email protected]✉
中央研究院生物多樣性研究中心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.