CSVDataImExporter
主な機能
- CSV形式でMovable Typeのコンテンツデータ・記事・ウェブページデータのエクスポート・インポートが可能です。
- インポート時のデータ更新は、コンテンツデータID/記事IDによる指定の他、ラベルや出力ファイル名による指定が可能です。これにより、常にインポートだけを行なう運用が可能です。
- 記事・ウェブページは一覧画面から選択してのエクスポートが可能です。
- 記事・ウェブページは、カテゴリ・フォルダ・関連アイテム・カスタムフィールドに対応します(グレードによって対応機能が異なります)。
- Movable Typeクラウド版に対応(4_00以降)。
- Movable Typeコンテンツデータに対応(5_00以降)。
- Mac Excelにも対応(5_12以降)。
動作確認環境
- Movable Type 5.02/5.06/5.12/5.2.2(PSGI環境確認済み)/6.x/7.0b3
- OS:Linux(CentOS)/Windows Vista/Windows 7
- Perl:5.8.8以上
- 表計算ツール:Microsoft Excel 2010/Microsoft Excel 2000/OpenOffice Calc/LibreOffice CalcPerlモジュールDevel::Peekが必要です。
インストール
ダウンロードアーカイブを展開した中にある「CSVDataImExporter」フォルダをMovable Typeのpluginsディレクトリにアップロードします。アップロード後、システム管理画面の「ツール」→「プラグイン」で「CSVDataImExporter」が表示されていればインストール完了です。
使い方(MT7)
CSVデータのエクスポート
エクスポートはサイト管理者以上の権限が必要です。
機能拡張版では権限によってインポート・エクスポートのリンクが表示されない場合があります。
コンテンツデータの場合、左メニューのコンテンツデータ名をクリックし、一覧画面上部「〜をエクスポート」をクリック。
エクスポート画面が表示されます。
記事・ウェブページの場合、左メニューの「記事」→「CSVデータのエクスポート」をクリック。
エクスポート画面が表示されます。
CSVデータのインポート
インポートはサイト管理者以上の権限が必要です。
機能拡張版では権限によってインポート・エクスポートのリンクが表示されない場合があります。
コンテンツデータの場合、左メニューのコンテンツデータ名をクリックし、一覧画面上部「〜をインポート」をクリック。
インポート画面が表示されます。
出力ファイル名は下記フォーマットの「identifier」を指します。
CSVに列指定なしの場合に初期値を適用するフィールドは下記のとおりです。
- テキスト
- テキスト(複数行)ブロックエディタを除く
- 数値
- URL
- 日付と時刻
- 日付
- 時刻
- セレクトボックス(選択されている項目を初期値として適用)
- ラジオボタン(選択されている項目を初期値として適用)
- チェックボックス(選択されている項目を初期値として適用)
- 埋め込みテキスト
- タグ
記事・ウェブページの場合、左メニューの「記事」→「インポート」をクリックしたあと、「インポート元」のプルダウンから「CSV形式」を選択すれば、インポート画面が表示されます。
各種設定
下記の設定は、システム管理画面またはサイト管理画面の「設定」→「プラグイン」→「CSVDataImExporter」→「設定」で設定できます。
クラウド/非クラウド
AWSなどのクラウド環境でプラグインをご利用の場合、「利用環境」で「クラウド環境」を選択してください(デフォルトは「非クラウド環境」)。
CSVファイルの文字コード
エクスポート・インポートの文字コードを「CSVファイルの文字コード」で選択できます(デフォルトは「Shift_JIS(CP932)」)。
改行コード
インポートの改行コードを「改行コード」で選択できます(デフォルトは「CR+LF」)。
5.45または6.17までのバージョンでLFを指定したい場合は、「CR+LF」を選択してください。
アップロードしたアセットの移動
アップロードしたアセットの移動する・移動しないを選択できます(デフォルトは「移動する」)。
ファイル自体のアップロード機能はありません
日本語ファイル名のURIエンコード
CSVにフルパスで記載した場合の日本語ファイル名のURLのみ、URIエンコードして登録します(デフォルトは「エンコードしない」)。
例:画像アセットを"/var/www/html/mt/image/テスト123.png"で設定し、CSVファイルをインポート
- アセット編集画面の「名前」:テスト123.png
- アセット編集画面の「ファイル名」:テスト123.png
- アセット編集画面の「アセットの埋め込み」:https://user-domain/mt/images/%E3%83%86%E3%82%B9%E3%83%88123.png
セレクトボックス/チェックボックス/ラジオボタンのデータ
セレクトボックス/チェックボックス/ラジオボタンのデータについて、ラベル・値のどちらを利用するかを「セレクトボックス/チェックボックス/ラジオボタンのデータ」で選択できます(デフォルトは「値」)。
更新履歴の保存
更新履歴の保存する・しないを「更新履歴の保存」で選択できます(デフォルトは「保存しない」)。
ステータス「未公開(原稿)」のファイル削除
ステータス「未公開(原稿)」のファイル削除する・しないを「ステータス「未公開(原稿)」のファイル削除」で選択できます(デフォルトは「削除しない」)。
「削除する(MTのファイル削除機能を利用)」は、編集画面から「公開→未公開(原稿)」を実施した場合と同等のHTMLファイル削除ルートを実行します。プラグインのフックポイントも実行されます。 「削除する」は、前述のHTMLファイル削除ルートの機能を絞って、HTMLファイル削除とmt_fileinfoテーブルからのレコード削除のみを実施します。
MT7-R4901以前のバージョンでは「削除する(MTのファイル削除機能を利用)」を選択してください。
CSVデータのフォーマット(コンテンツデータ)
CSVデータのフォーマットは表の通りになります(v5.29以降)。
項目 | 1行目 | 2行目以降 | 備考 |
---|---|---|---|
コンテンツタイプ | content_type | コンテンツタイプ名を設定 | 必須(列削除不可) |
コンテンツデータID | id | コンテンツデータIDを半角数字で入力 | 必須(列削除不可)。上書き時はid値必須 |
データ識別ラベル | label | データ識別ラベルを設定 | 必須。ただし自動入力の場合は値不要。列削除不可 |
ユーザーID | author_id | 投稿者のユーザーIDを設定 | 必須(列削除不可) |
出力ファイル名 | identifier | 出力ファイル名を設定 | 任意(列削除可)。新規で未設定の場合、自動生成。 |
公開日 | authored_on | 以下のいずれかのフォーマットを設定 YYYYMMDDHHMMSS 例:20140101235959 YYYY-MM-DDTHH:MM:SS.mmm 例:2014-01-01T23:59:59.000 YYYY-MM-DD HH:MM:SS 例:2014-01-01 23:59:59 YYYY/M/D H:MM 例:2014/1/1 23:59 YYYY.M.D H:MM 例:2014.1.1 23:59 | 任意(列削除可) |
更新日 | modified_on | フォーマットは公開日と同じ | 任意(列削除可) |
公開終了日 | unpublished_on | フォーマットは公開日と同じ | 任意(列削除可) |
ステータス | status | 下書き:1 公開:2 指定日:4 公開終了:6 | 必須(列削除不可) |
コンテンツフィールド | コンテンツフィールドの名前 | コンテンツフィールドデータを設定 | 詳細は評価版でエクスポートしてみてください |
インポートが不要なコンテンツフィールドはCSVから列削除が可能です(元の値が残ります)。
何らかの値が入っているコンテンツフィールドに対し空の値をインポートすると、元のデータは空の値で上書きされます。
コンテンツフィールド「アセット(オーディオ・ビデオ・画像含む)」のフォーマット
CSVに設定するアセットのフォーマットは次のいずれかになります。赤色部分がデータ部分になります。
- パターン1 ※エクスポート時はこのフォーマットになります
アセット名(アセットID) - パターン2 未登録のアセットを関連付ける場合
アセットのパス(ルートディレクトリからのフルパス)とファイル名
例:/home/user-name/www/sample.jpg
パターン2の場合、ファイルはMTと同じサーバに予めアップロードしてください(ファイルのアップロード機能はありません)。
アセットをパターン2のフォーマットで指定した後で上書きインポートを行う場合は、パターン2のフォーマットでインポートしたあと、パターン1(アセットIDはエクスポートしたCSVで確認)でインポートしてください。パターン2のフォーマットで複数回インポートを行うと、異なるアセットとして登録されます。
パターン2でアップロードする場合、ファイル名の重複がないようにしてください。
ブロックエディタ(コンテンツフィールド「テキスト(複数行)」の「ブロックエディタ」)のフォーマット
種類 | 見出し | テキスト | 埋め込みコード | 水平線 | 画像 |
---|---|---|---|---|---|
キー | ● | ● | ● | ● | ● |
type | heading | text | embed | horizon | image |
order | ● | ● | ● | ● | ● |
html | ● | ● | ● | ● | ● |
value | ● | ● | ● | ● ("[]"固定) |
|
options | ● | ● ("[]"固定) |
● ("[]"固定) |
● | |
elm | ● | ||||
align | ● | ||||
alt | ● | ||||
caption | ● | ||||
title | ● | ||||
width | ● | ||||
asset_id | ● | ||||
asset_url | ● |
各項目の意味
- キー:1つのコンテンツデータ内で重複しない半角英数文字を指定
- type:ブロックの種類(heading:見出し/text:テキスト/embed:埋め込みコード/horizon:水平線/image:画像)
- order:ブロックエディタ内で重複しない半角数字を指定(指定順に表示)
- html:ブロックのHTML
- value:ブロックの値
- options:オプション(値は配下の項目で指定)
- elm:ヘッダの要素
- align:画像のアライメント
- alt:画像の代替テキスト
- caption:画像のキャプション
- title:画像のタイトル
- width:画像の幅
- asset_id:アセットID
- asset_url:アセットのURL
注意事項
- YAMLフォーマットに違反した場合、エラーメッセージを表示し、処理を中断または該当フィールドのインポートをスキップします。エラーの原因やエラーメッセージの内容についてはお客様にて解析願います
- 画像のアップロードには対応していません。アセットのID、URLを設定してください
- 画像のID・URLは必須です
- 画像のIDおよびURLに一致するアセットを事前に用意してください。誤ったIDおよびURLのチェックは行いません。誤っていた場合、インポート後の動作保証は致しません
- 上記のデフォルト設定以外のブロックデータについては改修が必要です(有償)
エクスポートデータのサンプル(コンテンツデータ)
content_type,id,label,author_id,identifier,authored_on,modified_on,unpublished_on,status,テキスト,テキスト(複数行)_convert_breaks,テキスト(複数行),数値,URL,日付と時刻,日付,時刻,セレクトボックス,ラジオボタン,チェックボックス,カテゴリ,埋め込みテキスト,コンテンツタイプ,画像
商品,1,test1,2,d2cc8562de18dfb00db091082ede6fccb716b354,2019-01-07 22:08:00,2019-01-14 18:25:56,,2,test1,0,aaa,,,,,,,,,,,,
商品,2,test2,2,676bddac8af2db3d4471fff68238a1c2aeb83adc,2019-01-12 01:57:30,2019-07-22 23:33:07,,2,test2,__default__,かきくけこ,3000,https://www.facebook.com/,2019-07-01 12:34:56,2019-07-10,11:22:33,1,1,3,"cat1(4:cat1),cat2(3:cat2),cat3(2:cat3)",,"Site Page:003,Site Page:002,Site Page:001",default-userpic-90.jpg(8)
商品,3,test1,2,bc00015e96ee0bfee0600e0ebf6b5fc398778768,2019-01-14 19:01:15,2019-07-22 23:31:08,,2,test1,richtext,あいうえお
,1000,https://www.koikikukan.com/,2019-07-22 00:00:00,2019-07-31,12:34:56,1,2,"1,2",cat2(3:cat2),,Site Page:002,bug-pbmt-white.png(7)
エクスポートデータのサンプル(ブロックエディタ部分)
17c93789c711180:
type: text
order: 1
value: |
テキスト
html: |
テキスト
17c937875d423a8:
type: heading
order: 2
options:
elm: h1
value: ヘッダ
html: ヘッダ
使い方(MT6)
CSVデータのエクスポート
エクスポートはブログ管理者以上の権限が必要です。
左メニューの「ツール」→「CSVデータのエクスポート」をクリックすれば、エクスポート画面が表示されます。
一覧画面を使えば、記事単位のエクスポートが可能です。
ウェブサイトでウェブページの記事単位のエクスポートを行う場合は、一覧画面にある「フィルタ」を使って「ウェブサイトウェブページ」を選択してください。
CSVデータのインポート
インポートはブログ管理者以上の権限が必要です。
MT6版は左メニューの「ツール」→「記事のインポート」をクリックしたあと、「インポート元」のプルダウンから「CSV形式」を選択すれば、インポート画面が表示されます。
MT5版以前は、左メニューの「ツール」→「CSVデータのインポート」をクリックすれば、インポート画面が表示されます。
各種設定
クラウド/非クラウド
AWSなどのクラウド環境でプラグインをご利用の場合、システム管理画面の「ツール」→「プラグイン」→「CSVDataImExporter」→「設定」で「クラウド環境」を選択してください(デフォルトは「非クラウド環境」)。
文字コード設定
エクスポートデータの文字コードをShift_JIS以外に変更したい場合、ウェブサイトまたはブログ管理画面の「ツール」→「プラグイン」→「CSVDataImExporter」→「設定」で、文字コードを変更してください(デフォルトは「Shift_JIS」)。
CSVデータのフォーマット
CSVデータのフォーマットは表の通りになります。
項目 | 1行目 | 2行目以降 | 備考 |
---|---|---|---|
クラス | class | ブログ記事:entry ウェブページ:page |
必須項目(注) A列に設定 1つのCSVファイルに「entry」と「page」の混在可能 |
記事ID | id | 記事IDを半角数字で入力 | 上書き時は必須項目(注) B列に設定 |
ステータス (公開状態) |
status | 下書き:1 公開:2 指定日:4 |
必須項目(注) |
ユーザー | author | 記事投稿者のユーザー名を設定 | 必須項目(注) |
公開日 | authored_on | 以下のいずれかのフォーマットを設定 YYYYMMDDHHMMSS 例:20140101235959 YYYY-MM-DDTHH:MM:SS.mmm 例:2014-01-01T23:59:59.000 YYYY-MM-DD HH:MM:SS 例:2014-01-01 23:59:59 YYYY/M/D H:MM 例:2014/1/1 23:59 YYYY.M.D H:MM 例:2014.1.1 23:59 |
|
更新日 | modified_on | フォーマットは公開日と同じ | |
公開終了日(MT6以降) | unpublished_on | フォーマットは公開日と同じ | |
フォーマット | convert_breaks | なし:0 改行を変換:__default__ Markdown:markdown Markdown + SmartyPants:markdown_with_smartypants リッチテキスト:richtext Textile 2:textile_2 |
|
タイトル | title | タイトルを設定 | |
本文 | text | 本文を設定 | データに改行やカンマなどを含む場合は全体をダブルクォーテーションで囲む |
追記 | text_more | 追記を設定 | 同上 |
概要 | excerpt | 概要を設定 | 同上 |
キーワード | keywords | キーワードを設定 | カンマで区切る場合は全体をダブルクォーテーションで囲む |
カテゴリ | categories | カテゴリまたはフォルダを設定 | 複数設定する場合はカンマで区切る(カンマで区切る場合は全体をダブルクォーテーションで囲む) サブカテゴリ・サブフォルダは「--」で区切る |
タグ | tags | タグを設定 | 複数設定する場合はカンマで区切る(カンマで区切る場合は全体をダブルクォーテーションで囲む) |
コメント許可 | allow_comments | 受信しない:0 受信する:1 |
|
トラックバック許可 | allow_pings | 受信しない:0 受信する:1 |
|
アイテム | assets | アイテムを設定 | 複数設定する場合はカンマで区切る(カンマで区切る場合は全体をダブルクォーテーションで囲む) |
出力ファイル名 (ベースネーム) |
basename | システムで一意となる任意の半角英数字 | |
カスタムフィールド | カスタムフィールドのベースネーム | カスタムフィールドデータを設定 | アイテム/画像/オーディオ/ビデオについては次のようなフォーマットの設定が必要です(グレード④以外)。 <form mt:asset-id=""1"" class=""mt-enclosure mt-enclosure-image"" style=""display: inline;""><a href=""http://user-domain/test.jpg"">test.jpg</a></form> 「mt-enclosure-image」の部分はオーディオの場合は「mt-enclosure-audio」、ビデオの場合は「mt-enclosure-video」になります。「mt:asset-id」には関連するアイテムのIDを指定してください。登録されていないアイテムとの関連づけは行えません。 グレード④については上記のフォーマットの他、後述する「アイテムのフォーマット」の「パターン2」によるアップロードが可能です。パターン2のフォーマットで指定した後で上書きインポートを行う場合は、パターン2のフォーマットでインポートしたあとのエクスポートしたCSVをご利用ください。パターン2のフォーマットで複数回インポートを行うと、同じアイテムが複数登録されます。 |
「必須項目」は、その項目を設定しないと記事として登録できないことを意味します。記事の上書きを行う場合、カテゴリや本文など「必須」でない部分は、CSVに設定されている内容で上書き登録します。よってCSVに設定がなければ空になるかまたは削除されます(他のシステムでは空でインポートすると現在登録されている内容を残すものもあるようですが、空にしたい(または削除したい)ケースを考慮してこのような仕様にしています)。
カテゴリ・フォルダのフォーマット
CSVに設定するカテゴリ・フォルダのフォーマットは次のいずれかになります。赤色部分がデータ部分になります。
パターン1 ※エクスポート時はこのフォーマットになります
カテゴリ名(カテゴリID:ベースネーム)パターン2
カテゴリ名(:ベースネーム)パターン3
カテゴリ名(カテゴリID)パターン4
カテゴリ名パターン2とサブカテゴリ指定を組み合わせた例
ニュース(:news)--2013年(:2013)--6月(:06)
カテゴリ名に「--」を使っていて区切り文字に使用できない場合は、ブログ管理画面の「ツール」→「プラグイン」→「CSVDataImExporter」→「設定」で区切り文字を変更することができます。(注:v3_00以降では未提供)
アイテムのフォーマット
CSVに設定するアイテムのフォーマットは次のいずれかになります。赤色部分がデータ部分になります。
パターン1 ※エクスポート時はこのフォーマットになります
アイテム名(アイテムID)パターン2 未登録のアイテムを関連付ける場合
アイテムのパス(ルートディレクトリからのフルパス)とファイル名
例:/home/user-name/www/sample.jpg
パターン2のフォーマットで指定した場合、指定したファイルを「サイトパス/assets」直下に配置しなおし、Movable Typeのアイテムとして登録して、さらに記事と関連づけを行います。関連づけるファイルはMTと同じサーバに予めアップロードしてください(ファイルのアップロード機能はありません)。
注:アイテムをパターン2のフォーマットで指定した後で上書きインポートを行う場合は、パターン2のフォーマットでインポートしたあとのエクスポートしたCSVをご利用ください。パターン2のフォーマットで複数回インポートを行うと、同じアイテムが複数登録されます。
パターン2でアップロードする場合、assets直下にファイルを配置するため、ファイル名の重複がないようにしてください。元ファイルのパスをアイテムのパスとして利用したい場合、プラグインの改修(有償)を致しますのでご相談ください。
エクスポートデータのサンプル
class,id,status,author,authored_on,modified_on,convert_breaks,title,text,text_more,excerpt,keywords,categories,tags,allow_comments,allow_pings,assets,basename
entry,27,2,mtbook,2013-06-16 17:45:18,2013-10-22 01:26:27,__default__,Movable Type 入門セミナー,"Movable Type 入門セミナーを下記の通り開催します。自分で更新できるウェブサイトジを作りたい、ウェブサイトを使って集客したい、売上を上げたい、成果を出したいという方々へ向けたセミナーです。
日時:2013年8月8日(水) 12:00~17:00
定員:先着50名
料金:2,000円(税込)
セミナーの内容:
- ブログとは?
- Movable Typeとは?
- Movable Typeでブログを構築するには
- 構築後の運用方法
- SEO対策
※Movable Type は、Six Apart, Ltd.の登録商標です。",,,"セミナー,Movable Type",お知らせ(1:cat)--イベント(2:cat),"CSS,JavaScript,Movable Type,PHP,SEO,Web2.0,Webデザイン,XHTML,セミナー",1,1,eyes0016.jpg(4),movable-type
entry,28,2,mtbook,2013-07-25 17:45:40,2013-06-22 01:26:01,__default__,ソリューションセミナー,"本セミナーでは、ソフトウェアの品質向上という課題に取り組み、成功されたお客様の事例をご紹介致します。さらに要件定義から運用まで、ソフトウェア開発におけるライフサイクルのすべてを支援するサービスをご紹介致します。 また、実際にご体感いただく展示コーナーも併設しております。
是非この機会にご参加いただきますようお願い致します。
名称:ソリューションセミナー
開催日程:2013年8月1日(火) 13:30~17:30 (受付開始:13時)
開催場所:コンファレンスセンター
主催:×××株式会社",,,セミナー,お知らせ(1:cat)--イベント(2:cat),"CSS,Movable Type,SEO,Web2.0,Webデザイン,XHTML,お知らせ,セミナー",1,1,eyes0723.jpg(5),java
entry,31,2,mtbook,2013-08-10 17:46:00,2013-11-22 01:25:20,__default__,業務提携に関するお知らせ,"株式会社××××××(本社:東京都品川区 代表取締役社長 以下、×××)は、××株式会社(以下、××)と、事業に関する業務提携を行なうことを合意しましたので、下記の通りお知らせ致します。
1.提携の目的
×××は本提携により、××の国内での幅広いネットワークを活用した×××の大手企業の獲得支援、また××の海外でのネットワークを活かした事業の活性化に向けた協業体制を構築することで、ノウハウをフルに活用して顧客満足度の高いサービス提供を目指します。
2.業務提携の主な内容
今回の提携により、今後各社のノウハウ及びネットワークを融合して積極的に事業展開し、事業を日本のみならず世界展開していくことを目指していきます。
本業務提携の締結に基づき、更なる関係強化のため×××は、××の株式10000株(出資比率20.0%)を取得する予定です。",,,"提携,事業",お知らせ(1:cat),"Movable Type,Webデザイン,お知らせ,セミナー",1,1,eyes0588.jpg(6),post-8
注意事項
- CSVデータで、classとidの出現順序が間違ったフォーマットでインポートするとインポートエラーになります。
- 大量のデータをインポート・エクスポートする場合、サーバ環境・性能によって処理が正常に終了しない場合があります(評価版で事前にご確認ください)。