2: 2009-05-05 (火) 11:41:51 なーお  |
現: 2019-08-17 (土) 07:11:56 なーお  |
- | * 習作:Movable Type形式の d3blogインポート [#c0ca336c] | + | * Movable Type形式の d3blogインポート-ver0.5 [#c0ca336c] |
| | | |
| Movable Type 形式のブログデータを、d3blogにインポートしようと考えました。 私の場合は、niftyの「ココログ」でエクスポートしたMT形式データのインポートになります。 | | Movable Type 形式のブログデータを、d3blogにインポートしようと考えました。 私の場合は、niftyの「ココログ」でエクスポートしたMT形式データのインポートになります。 |
| + | &font(Red){いきなり本番環境で実行せず、必ずテスト環境で試してから実行してください};。 |
| | | |
| ** 1、参考:[[ MovableTypeのデータをWordPressに移行したい。>http://www.kowa.org/modules/pukiwiki/306.html]](のぶのぶXOOPS) [#q7bae4ba] | | ** 1、参考:[[ MovableTypeのデータをWordPressに移行したい。>http://www.kowa.org/modules/pukiwiki/306.html]](のぶのぶXOOPS) [#q7bae4ba] |
| ** 3、インポートの準備 [#v451ce5a] | | ** 3、インポートの準備 [#v451ce5a] |
| | | |
- | *** (1)xoops_trust_path/modules/d3blog/import.php [#y3555236] | + | *** (1)xoops_trust_path/modules/d3blog/main/import-mt.php [#y3555236] |
| | | |
- | |&ref(import_0.4.zip); ver 0.4(EUC-JP)| | + | |&ref(import_0.5.zip); ver 0.5(EUC-JP)| |
- | 解凍したファイルの5行目にMT形式ファイルのフルパスを加筆し、6行目にMT形式ファイルの文字コードを(2008-7-13修正)xoopsのデータベースの文字コードが EUC-JP以外なら変更して、 ファイル名「import.php」で&font(#ff0000){trust側の};d3blogフォルダに保存します。(本ファイルはEUC-JPで保存されていますが、運用サイトの文字コードに合せて変換保存して下さい。) | + | 解凍したファイルの |
| + | - 3行目にMT形式ファイルのフルパスを加筆し、 |
| + | - 4行目にMT形式ファイルの文字コードを(2008-7-13修正)。 |
| + | - 5行目にxoopsのデータベースの文字コードを記載。 |
| + | - Biglobeの場合は、7行目を$biglobemode = true;に変更。 |
| + | ファイル名「import-mt.php」で&font(#ff0000){trust側の};d3blog/mainフォルダに保存します。(本ファイルはEUC-JPで保存されていますが、運用サイトの文字コードに合せて変換保存して下さい。) |
| なお、セキュリティの関係上、ファイル名は変更することをお勧めします。 | | なお、セキュリティの関係上、ファイル名は変更することをお勧めします。 |
| | | |
- | (2009/5/22追記) | + | (2010/05/02変更) |
| 元のブログやMT形式データによっては、改行がHTMLの場合やただの改行の場合など、様々なようです。 | | 元のブログやMT形式データによっては、改行がHTMLの場合やただの改行の場合など、様々なようです。 |
- | この場合、インポート後の各記事のオプション設定が、スクリプト280行目付近にありますので、必要に応じて編集します。 | + | この場合、元のMT形式ファイルから設定を読み込みますが、万一うまくいかない場合は、スクリプト475行目付近に設定がありますので、必要に応じて編集します。 |
| | | |
- | デフォルトでは、HTMLが有効としてあり、通常の改行コードでは改行が入りません。 | + | 自動改行を有効にする場合はこの「dobr」オプションを「1」にします。 |
- | #code(php,280-){{ | + | |
- | $entry->setVar('cid', 1); | + | |
- | $entry->setVar('dohtml', 1); | + | |
- | $entry->setVar('dobr', 0); | + | |
- | $entry->setVar('doxcode', 1); | + | |
- | $entry->setVar('doimage', 1); | + | |
- | $entry->setVar('groups', '|0|'); | + | |
- | }} | + | |
- | | + | |
- | その場合はこの「dobr」オプションを「1」にします。 | + | |
| | | |
- | #code(php,280-){{ | + | #code(php,472-){{ |
| $entry->setVar('cid', 1); | | $entry->setVar('cid', 1); |
| $entry->setVar('dohtml', 1); | | $entry->setVar('dohtml', 1); |
| | | |
| にしてやってみてください。 | | にしてやってみてください。 |
- | なお、HTMLを無効にする場合は、上記 'dohtml' を「0」に変更すします。 | + | なお、HTMLを無効にする場合は、上記 'dohtml' を「0」に変更します。 |
| | | |
| *** (2)xoops_trust_path/modules/d3blog/xxxx.txt [#bc1adae7] | | *** (2)xoops_trust_path/modules/d3blog/xxxx.txt [#bc1adae7] |
| MT形式のテキストデータを、d3blog フォルダに置きます。 テキストデータ内の記事の投稿者名と、インポートするxoopsのユーザー名が合致する場合のみ、インポートされます。 もし、 ユーザー名が変わる場合は、テキストデータの投稿者名部分(AUTHOR: ○○)を予めすべて置き換えておく必要があります。 | | MT形式のテキストデータを、d3blog フォルダに置きます。 テキストデータ内の記事の投稿者名と、インポートするxoopsのユーザー名が合致する場合のみ、インポートされます。 もし、 ユーザー名が変わる場合は、テキストデータの投稿者名部分(AUTHOR: ○○)を予めすべて置き換えておく必要があります。 |
| | | |
- | *** (3)xoops_root_path/modules/d3blog/import.php [#if48335f] | + | &font(Red){既知の不具合として、ファイル最初の1件目のデータを読み取れません。 お手数ですが、テキストファイルの1件目のデータをコピーし、2件目に挿入したテキストファイルを作ってください};。 記事選択の際には、2件目のほうを選択してください。 |
| + | |
| + | *** (3)テンプレート _custom_mt2_d3blog.html [#e2c481e9] |
| + | Altsysの「テンプレート管理」-「カスタムテンプレート」で、以下のコードを「_custom_mt2_d3blog.html」として作成します。 |
| | | |
- | 次のコードを書いて、ファイル名「import.php」で&font(#ff0000){html側の};d3blogフォルダに保存します。 なお、セキュリティの関係上、ファイル名は変更することをお勧めします。変更した場合は、(1)の50行目付近「form」タグ内の記述も変更してください。 | + | #code(html,1-){{ |
| + | <h2>mt形式ログ > d3blogインポート</h2> |
| + | <h3>STEP:<{$mt2d3b_step}></h3> |
| + | あなたのuid=<{$mt2d3b_uid}> |
| + | <{if $mt2d3b_isadmin}>実行権限:OK |
| + | <form name="MainForm" action="./index.php?page=<{$mt2d3b_actionname}>" method="post"> |
| + | <{if $mt2d3b_step==0}> |
| + | <{if $mt2d3b_mtfile != ""}> |
| + | <p>こんにちは! あなたの Movable Type 記事を d3blogへインポートします。 <br> |
| + | (カテゴリは、1つしか読み込まれません。) |
| + | インポート作業は、少々時間がかかる場合があります。</p> |
| + | <p>また、インポートする記事毎に、ユーザー名が一致するかチェックを行い、該当ユーザー名がDBに無い時はインポートを行いませんので、ご注意を。 一旦取り込んだ記事やコメント・トラックバックと重複データの場合は、インポートをスキップして次の記事のインポートを継続します。</p> |
| + | <p>一度にインポートする記事件数: |
| + | <select name="d3b_once"> |
| + | <option value="20" <{if $mt2d3b_once ==20}>selected=true<{/if}>>20件</option> |
| + | <option value="50" <{if $mt2d3b_once ==50}>selected=true<{/if}>>50件</option> |
| + | <option value="100" <{if $mt2d3b_once ==100}>selected=true<{/if}>>100件</option> |
| + | <option value="200" <{if $mt2d3b_once ==200}>selected=true<{/if}>>200件</option> |
| + | <option value="500" <{if $mt2d3b_once ==500}>selected=true<{/if}>>500件</option> |
| + | </select></p> |
| | | |
- | #code(php,1-){{ | + | <{if ( $mt2d3b_use_d3comment ) }> |
- | <?php | + | <font color=red>コメントのインポート先に、d3forumコメント統合が選択されています。</font><br /> |
- | require '../../mainfile.php' ; | + | d3forumのdirectoy名称 = <{$mt2d3b_d3com_agent}><br /> |
- | if( ! defined( 'XOOPS_TRUST_PATH' ) ) die( 'set XOOPS_TRUST_PATH in mainfile.php' ) ; | + | d3forumの名称 (forumid) = <{$mt2d3b_d3com_forum_title}> (<{$mt2d3b_d3com_forumid}>)<br /> |
| + | 間違えなければ、「実行」。 変更したい場合はd3blogの一般設定と、このスクリプトファイルの設定を変更して下さい。<br /> |
| + | <{/if}> |
| | | |
- | $mydirname = basename( dirname( __FILE__ ) ) ; | + | <{else}> |
- | $mydirpath = dirname( __FILE__ ) ; | + | <p><font color="red">MT形式ファイルのパスが正しく設定されていません。</font></p> |
- | $mydirurl = XOOPS_URL.'/modules/'.$mydirname; | + | (<code><{$mt2d3b_actionname}></code>) を開いて、どのファイルから読み込むか1行編集してください。</p> |
| + | <p><code>define('MTEXPORT', '');</code></p> |
| + | <p>これを、下のように(但し実際のファイルのフルパスに)編集します。</p> |
| + | <p><code>define('MTEXPORT', '/full/path/to/your/import.txt');</code></p> |
| + | <p>この作業は、セキュリティの観点から手動で行う必要があります。</p> |
| + | <{/if}> |
| + | <{elseif $mt2d3b_step==1}> |
| + | 全<{$posts_total}>件から、<{$mt2d3b_once}>件づつインポートします。<br /> |
| + | 以下の中から選択した記事・コメント・トラックバックをインポートします。<br /> |
| + | <table class="outer"> |
| + | <tbody border="1"><tr><th align="center">選択<br /><input type='checkbox' title='この縦一列のチェックボックスすべてをON/OFFします' onclick="with(document.MainForm){for(i=0;i<length;i++){if(elements[i].type=='checkbox'&&elements[i].name.indexOf('mt2d3b_thread')>=0){elements[i].checked=this.checked;}}}" />全選択/解除</th> |
| + | <th align="center">No</th><th align="center">タイトル</th><th align="center">投稿日時</th></tr> |
| + | <{foreach key=num item=thread from=$mt2d3b_threads}> |
| + | <tr class="<{cycle values='odd,even'}>"><td align="center"><input type="checkbox" name="mt2d3b_thread[<{$num}>]" value="<{$thread.thread_id}>" /></td><td align="right"><{$thread.thread_id}></td><td><{$thread.title}></td><td align="center"><{$thread.post_time|date_format:"%Y年%m月%d日 %H時%M分"}></td></tr> |
| + | <{/foreach}> |
| + | </table> |
| + | よろしければ「送信」してください。<br /> |
| + | <input type=hidden name="forum_title" value=<{$mt2d3b_forum_title}> /> |
| + | <input type=hidden name="forum_id" value=<{$mt2d3b_forum_id}> /> |
| + | <input type=hidden name="wf_topic_id" value=<{$mt2d3b_wf_topic_id}> /> |
| + | <input type=hidden name="wf_fileid" value=<{$mt2d3b_file_id}> /> |
| + | <input type=hidden name="d3b_once" value=<{$mt2d3b_once}> /><br /> |
| + | <{elseif $mt2d3b_step==2}> |
| + | <{foreach key=num item=echo_log from=$mt2d3b_echo_log}> |
| + | <{$echo_log}><br /> |
| + | <{/foreach}> |
| + | インポートが完了しました。<br /> |
| + | 最初のページに戻るには下のボタンで送信してください。<br /> |
| + | <input type=hidden name="d3b_once" value=<{$mt2d3b_once}> /><br /> |
| + | <{/if}> |
| + | <input type=hidden name="page" value="<{$mt2d3b_actionname}>" /> |
| + | <input type=hidden name="step" value="<{$mt2d3b_step_next}>" /> |
| + | <input type=hidden name="d3b_start" value=<{$mt2d3b_start}> /><br /> |
| + | <input type=submit value="送信" /> |
| + | </form> |
| + | <br /> |
| + | <{else}> |
| + | 実行権限:NG |
| + | 権限がありません。 |
| + | <{/if}> |
| | | |
- | require $mydirpath.'/mytrustdirname.php' ; // set $mytrustdirname | |
- | require XOOPS_TRUST_PATH.'/modules/'.$mytrustdirname.'/import.php' ; | |
- | ?> | |
| }} | | }} |
| | | |
- | #br | |
| ** 4、インポートの実行 [#y38a8c01] | | ** 4、インポートの実行 [#y38a8c01] |
| | | |
| + 管理者でログインする | | + 管理者でログインする |
- | + xoops_root_path/modules/d3blog/import.phpにアクセスする | + | + STEP0:xoops_root_path/modules/(d3blog)/index.php?page=import-mtにアクセスする。 |
- | + 「実行」ボタンを押して、処理を行う。 | + | (d3blog)の部分はインストールフォルダ名に変更します。 |
| + | -- 「一度にインポートする記事件数」を選択します。 |
| + | 大量の記事を一度にインポートすると、メモリ不足になったりサーバーに負荷をかけてしまいます。通常は50~100件程度に抑えて実行してゆくことをお勧めします。 |
| + | -- コメントにd3forumコメント統合が選択されている場合は、フォーラム名称とforum_idを確認します。 |
| + | -- 「送信」ボタンを押します。 |
| + | |&ref(step0.gif,mw:240,mh:240);| |
| + | + STEP1:取り込む記事にチェックを入れて「送信」ボタンを押す。 |
| + | -- 全記事一度に取り込む場合は、全選択/解除チェックを活用してください。 |
| 記事数にもよりますが、かなりの時間がかかる場合があります。 | | 記事数にもよりますが、かなりの時間がかかる場合があります。 |
- | + 結果を確認する | + | |&ref(step1.gif,mw:240,mh:240);| |
- | d3blogの各記事のカテゴリーは1つしか選べないため、記事毎にカテゴリを選択しなおす必要があります。 | + | + STEP2:結果を確認する。 |
| + | -- インポートした記事群のbid値、タイトルが表示されます。 |
| + | -- 「送信」を押すと、STEP0に戻り、選択した記事数の次回分のインポートに進みます。 |
| + | -- 別ウインドウを開くなどして、インポート状態を確認します。 |
| + | d3blogの各記事のカテゴリーは1つしか選べないため、後で記事毎にカテゴリを選択しなおす必要があります。 |
| + | |&ref(step2.gif,mw:240,mh:240);| |
| + ファイルを削除する | | + ファイルを削除する |
| | | |
| | | |
| 以下の環境で確認しました。 他の環境では動作しない場合もあるかもしれません、ご容赦下さい。 | | 以下の環境で確認しました。 他の環境では動作しない場合もあるかもしれません、ご容赦下さい。 |
- | - Vine Linux 4.2-Apache1.3.37 | + | - CentOS-5.4 + Apache-2.2.3 |
- | - php 5.2.3 | + | - php 5.1.6 |
- | - mysql 5.0.27 | + | - mysql 5.0.77 |
- | - Xoops Cube Legacy 2.1.4 および HD1.0.0 | + | - Xoops Cube Legacy 2.1.6 および HD1.0.3 |
- | - d3blog 1.02.3 | + | - d3blog 1.03 |
- | - エクスポート元ブログ:ココログ | + | - エクスポート元ブログ:ココログ、Biglobe(ウエブリブログ) |
| | | |
| ** 6、改変履歴 [#n780257d] | | ** 6、改変履歴 [#n780257d] |
| | | |
| + | - 10年5月 2日 ver0.5 カスタムテンプレート方式に変更し記事単位で取り込み指定が可能に。 また、html側ファイル不要とした。 |
| - 09年5月 4日 スクリプトの配布を、zip形式に変更。 | | - 09年5月 4日 スクリプトの配布を、zip形式に変更。 |
| - 09年4月13日 ver0.4 コメントのd3forum統合コメントへの直接インポートに対応。 | | - 09年4月13日 ver0.4 コメントのd3forum統合コメントへの直接インポートに対応。 |