mt-csv2customfields v0.02

mt-csv2customfields v0.02

Posted at April 21,2008 12:22 AM
Tag:[MovableType, mt-csv2customfields, Script]

CSV形式のデータを Movable Type のカスタムフィールドに一括読み込みさせるスクリプト mt-csv2customfields.cgi をバージョンアップしました。

追加機能は次の通りです。

  • CSVデータにカテゴリー名(またはサブカテゴリー名)が設定可能
  • カテゴリー名が存在しない場合、トップカテゴリーとして新規作成
  • CSVデータにタグが設定可能
  • タグの複数指定が可能
  • 既存のブログ記事タイトルを指定した場合、カスタムフィールドの内容を上書き

最新版のダウンロードと使用方法は以下の記事を参照願います。

mt-csv2customfields
関連記事
トラックバックURL


コメント

いつも参考になる記事、ありがとうございます。
はじめて質問させていただきます。

このプラグインは、MT4.2に対応していますか?

>既存のブログ記事タイトルを指定した場合、カスタムフィールドの内容を上書き

たとえば、100件の商品データが存在し、データカスタムフィールドに、税込み価格を設定してあります。
その後、100件の価格が値上がりになった場合、初回にアップしたCSVの価格のみを変更した場合、その新規価格が上書きされるという解釈でよいのでしょうか?

よろしくお願いします。

[1] Posted by hrm_tsk : October 20, 2008 7:07 PM

>hrm_tskさん
こんばんは。
ご質問の件ですが、ツールは MT4.2 でも対応しています。
また、後半のご質問もその通りです。

ブログを新しくひとつ作成し、元ブログのデータをバックアップして、そのバックアップデータを新しく作ったブログに復元し、そこでツールを試してみることをおすすめします。実行時はブログIDを間違えないように気をつけてください。

それではよろしくお願い致します。

[2] Posted by yujiro logo : October 25, 2008 2:24 AM

「mt-csv2customfields.cgi 」試してみましたが、MTOSでは使用できないみたいです。何度試しても「500 Internal Server Error」になります。
MT4.2では何の問題もなく使用できるのですが。
まぁ、そもそもMTOSはカスタムフィールドがないので仕方ないかなと思いつつ、「MTOS活用テクニック」に倣って作成したカスタムフィールド様フィールドに使用できるかなと思い、試してみようと思ったのですが・・・。
無理でしょうか?

[3] Posted by ryui : October 1, 2009 12:26 PM

>ryuiさん
こんにちは。
ご質問の件ですが、例えば書籍の「2-3」のように「サブタイトル」のテキストフィールドのカスタムフィールドを追加した場合、perl がお分かりであれば、mt-csv2customfields.cgi を開いて、71行目にある、

my @field = ('title','text','category','tags');

my @field = ('title','text','category','tags','sub_title');

にして、112-137行目のfor文の中に

if ($flag{sub_title} && $pos{sub_title} == $i) {
    $entry->sub_title($data[$i]);
    next;
}

を追加すれば取得できるかもしれません。
そして、CSVデータの1行目にも「sub_title」を記述します。

別のカスタムフィールドに設定したい場合は、青字の「sub_title」の部分を変更してください。

それではよろしくお願い致します。

[4] Posted by yujiro logo : October 3, 2009 3:28 PM

早速のお返事ありがとうございます。
mt-csv2customfields.cgi の書き換えはわかるのですが、MTOSでは「Internal Server Error」になって、アクセスできないんです。
Perlパスやパーミッションは設定できていると思います。
MTOSとMT4.2の両方で試しているのですが、MT4.2では問題なく動きます。
MTOSは「addons」フォルダがありませんが、これが関係ありますか?

[5] Posted by ryui : October 5, 2009 11:54 AM

>ryuiさん
すいません。質問を読み違えてました。
それでは以下の部分をコメントアウトしてください。

56行目

use CustomFields::Util qw( save_meta );

145行目

&save_meta($e, $meta);

157行目

&save_meta($entry, $meta);

それではよろしくお願い致します。

[6] Posted by yujiro logo : October 5, 2009 2:25 PM

早速試してみたところ、MTOSでも mt-csv2customfields.cgi を動かすことができました。
前々回に教えていただいたようにカスタムフィールド様フィールドをCGIの中に追加して、CSVファイルを読み込んでみましたが、タイトル、本文、カテゴリ、タグしか読み込めませんでした。
つまりカスタムフィールド様フィールドは読み込めませんでした。
ちょっと無理っぽいですね。お手数をお掛けしてすいません。

[7] Posted by ryui : October 5, 2009 10:27 PM

yujiroさん、いつも素敵なツールの提供ありがとうございます。
このツールについて質問です。お陰様でたくさんのページをあげるのに非常に役立ちそうなのですが、このツールでアップすると、デフォルトでチェックしているコメントとトラックバックのチェックが外れるようです。(私だけでしょうか?)一ページずつ直すことも可能ですが、難しくないなら、デフォルトのままとなるようにはならないものでしょうか?
あと、これは難しいのかもですが、複数カテゴリへの対応というのはいかがでしょうか?
勝ってばかり言って申し訳ありません。ご検討のほどよろしくお願いいたします。

[8] Posted by mackee : November 3, 2009 3:15 PM

>mackeeさん
こんにちは。
ご返事遅くなって申し訳ありません。
ご質問の件ですが、コメントとトラックバックについては動作が確認でき次第、別途エントリー致します。
また、複数カテゴリーの対応は難しいかもしれません。
それではよろしくお願い致します。

[9] Posted by yujiro logo : November 16, 2009 3:27 PM

>yujiroさん、
コメントとトラックバックの対応、大変助かります。複数カテゴリのほうも了解しました。一方的なお願いでしたが、対応していただきありがとうございました<(_ _)>

[10] Posted by mackee : November 23, 2009 1:00 AM

お世話になっております。
初めて質問させていただきます。
MTOSにインストールしたところ、タイトルのみインポートできませんでした。
アップロード中のメッセージは以下の通りです。
問題点を教えていただければ幸いです。

[]を追加しました. ブログ記事ID:8
[]にカテゴリー[test]を設定しました
[]を追加しました. ブログ記事ID:9
[]にカテゴリー[test]を設定しました
[]を追加しました. ブログ記事ID:10
[]にカテゴリー[test]を設定しました

[11] Posted by ms-08s : December 4, 2009 1:19 AM

返信大変遅くなりました。以前、MTOSでのカスタムフィールド様フィールドにデータをCSVファイルを読み込むことができないとコメントしましたが、
ご指示いただいた方法でできました。ありがとうございました。
ただこの場合は、カスタムフィールド様フィールドは追記・変更があったとき、上書きはされないようです。カスタムフィールドのように上書きするように変更するにはどのようにすればよいでしょうか?

[12] Posted by ryui : January 12, 2010 9:35 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)