mt-csv2customfields v0.02
CSV形式のデータを Movable Type のカスタムフィールドに一括読み込みさせるスクリプト mt-csv2customfields.cgi をバージョンアップしました。
追加機能は次の通りです。
- CSVデータにカテゴリー名(またはサブカテゴリー名)が設定可能
- カテゴリー名が存在しない場合、トップカテゴリーとして新規作成
- CSVデータにタグが設定可能
- タグの複数指定が可能
- 既存のブログ記事タイトルを指定した場合、カスタムフィールドの内容を上書き
最新版のダウンロードと使用方法は以下の記事を参照願います。
- Movable Typeのカスタムフィールドのオプションの表示名を表示する方法
- Movable Typeの日付カスタムフィールドを使って「予定」「開催中」「終了」を別々に表示する方法
- Movable Typeの日付カスタムフィールドを2つ使って「開催中」を表示する方法
- Movable Typeの日付カスタムフィールドを使って現在時刻と比較する方法
- Movable Typeのカスタムフィールドに入力した複数のブログ記事IDからブログ記事リストを出力する
- Movable Typeのポップアップコメントにカスタムフィールドを表示する
- コメントカスタムフィールドの値をクッキーに保存する方法
- コメントプレビューでカスタムフィールドの値を表示する
- Movable Typeのサインアップ画面に表示するカスタムフィールドの順序を並べ替える
- コメント用カスタムフィールドの投稿フォームのカスタマイズ(その2)
- コメント用カスタムフィールドの投稿フォームのカスタマイズ(その1)
- 特定のカスタムフィールドの情報を出力する(その2)
- 特定のカスタムフィールドの情報を出力する
- Movable Type 5.0 のカスタムフィールドをカテゴリで振り分ける
- カスタムフィールドの入力文字数が改善
いつも参考になる記事、ありがとうございます。
はじめて質問させていただきます。
このプラグインは、MT4.2に対応していますか?
>既存のブログ記事タイトルを指定した場合、カスタムフィールドの内容を上書き
たとえば、100件の商品データが存在し、データカスタムフィールドに、税込み価格を設定してあります。
その後、100件の価格が値上がりになった場合、初回にアップしたCSVの価格のみを変更した場合、その新規価格が上書きされるという解釈でよいのでしょうか?
よろしくお願いします。
>hrm_tskさん
こんばんは。
ご質問の件ですが、ツールは MT4.2 でも対応しています。
また、後半のご質問もその通りです。
ブログを新しくひとつ作成し、元ブログのデータをバックアップして、そのバックアップデータを新しく作ったブログに復元し、そこでツールを試してみることをおすすめします。実行時はブログIDを間違えないように気をつけてください。
それではよろしくお願い致します。
「mt-csv2customfields.cgi 」試してみましたが、MTOSでは使用できないみたいです。何度試しても「500 Internal Server Error」になります。
MT4.2では何の問題もなく使用できるのですが。
まぁ、そもそもMTOSはカスタムフィールドがないので仕方ないかなと思いつつ、「MTOS活用テクニック」に倣って作成したカスタムフィールド様フィールドに使用できるかなと思い、試してみようと思ったのですが・・・。
無理でしょうか?
>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」の部分を変更してください。
それではよろしくお願い致します。
早速のお返事ありがとうございます。
mt-csv2customfields.cgi の書き換えはわかるのですが、MTOSでは「Internal Server Error」になって、アクセスできないんです。
Perlパスやパーミッションは設定できていると思います。
MTOSとMT4.2の両方で試しているのですが、MT4.2では問題なく動きます。
MTOSは「addons」フォルダがありませんが、これが関係ありますか?
>ryuiさん
すいません。質問を読み違えてました。
それでは以下の部分をコメントアウトしてください。
56行目
use CustomFields::Util qw( save_meta );
145行目
&save_meta($e, $meta);
157行目
&save_meta($entry, $meta);
それではよろしくお願い致します。
早速試してみたところ、MTOSでも mt-csv2customfields.cgi を動かすことができました。
前々回に教えていただいたようにカスタムフィールド様フィールドをCGIの中に追加して、CSVファイルを読み込んでみましたが、タイトル、本文、カテゴリ、タグしか読み込めませんでした。
つまりカスタムフィールド様フィールドは読み込めませんでした。
ちょっと無理っぽいですね。お手数をお掛けしてすいません。
yujiroさん、いつも素敵なツールの提供ありがとうございます。
このツールについて質問です。お陰様でたくさんのページをあげるのに非常に役立ちそうなのですが、このツールでアップすると、デフォルトでチェックしているコメントとトラックバックのチェックが外れるようです。(私だけでしょうか?)一ページずつ直すことも可能ですが、難しくないなら、デフォルトのままとなるようにはならないものでしょうか?
あと、これは難しいのかもですが、複数カテゴリへの対応というのはいかがでしょうか?
勝ってばかり言って申し訳ありません。ご検討のほどよろしくお願いいたします。
>mackeeさん
こんにちは。
ご返事遅くなって申し訳ありません。
ご質問の件ですが、コメントとトラックバックについては動作が確認でき次第、別途エントリー致します。
また、複数カテゴリーの対応は難しいかもしれません。
それではよろしくお願い致します。
>yujiroさん、
コメントとトラックバックの対応、大変助かります。複数カテゴリのほうも了解しました。一方的なお願いでしたが、対応していただきありがとうございました<(_ _)>
お世話になっております。
初めて質問させていただきます。
MTOSにインストールしたところ、タイトルのみインポートできませんでした。
アップロード中のメッセージは以下の通りです。
問題点を教えていただければ幸いです。
[]を追加しました. ブログ記事ID:8
[]にカテゴリー[test]を設定しました
[]を追加しました. ブログ記事ID:9
[]にカテゴリー[test]を設定しました
[]を追加しました. ブログ記事ID:10
[]にカテゴリー[test]を設定しました
返信大変遅くなりました。以前、MTOSでのカスタムフィールド様フィールドにデータをCSVファイルを読み込むことができないとコメントしましたが、
ご指示いただいた方法でできました。ありがとうございました。
ただこの場合は、カスタムフィールド様フィールドは追記・変更があったとき、上書きはされないようです。カスタムフィールドのように上書きするように変更するにはどのようにすればよいでしょうか?