E-mail パスワード
次回から自動ログインする    
パスワード紛失  新規登録      
   ホーム | フォーラム | ブログ | Wiki | 用語集 | マイアルバム | カレンダー | リンク | サイト内検索 |  
  • ソース を表示
  • inc/yybbs_d3f は削除されています。
1: 2009-05-06 (水) 15:36:04 なーお ソース バックアップ No.1 を復元して編集 現: - no date - ソース 編集
Line 1: Line 1:
-* YYBBS -> d3forum インポート [#s6761ab1] 
-** 履歴 [#d8359320] 
-- 2009/05/07 初版公開 
-** 概要 [#h2bc5daf] 
- 
- [[XOOPS-JOYFULもどき(YYBBS-0.59改)>http://www.kuri3.net/modules/mydownloads/viewcat.php?cid=2]] ・・ 元々、KENT氏によるcgi掲示板を、minahito氏によりxoops用掲示板モジュールにコンバートされたものを、更にhodaka氏が画像アップロード可能なようにハックしたバージョン。 要望があったので、d3forumへのインポートをトライしてみました。 
- なお、画像アップロードハック版ではなく、minahito氏オリジナル版も、インポート可能なはずです。 
- 
- なお、毎度のお約束ですが、小生のスキルはそれほど高くありませんので、不具合が出る可能性があります。 &font(Red){いきなり本番環境で実行するのはもってのほか};。私でもやりません(笑) まずはテスト環境で実行してみて、続いて本番環境に d3forumの複製フォーラムを作ってそこにインポートしてみるなどして、問題なければ本番モジュールで実行して下さい。 
- 
-*** 特徴 [#e5dcd2cc] 
-特徴というほどでもありませんが、 
-+ d3forumに既にある記事はそのままで、インポート可能 
-+ 親記事・レス記事構造の維持 
-+ フォーラムの自動作成 
- (YYBBSの掲示板名と同名で作成。作成先カテゴリを選択可能。) 
-+ トピック(親記事)単位で選択インポート 
-+ インポート済みのトピックは自動スキップ 
- (このため、同トピックにインポート後に付いた返信は、インポートできません) 
- 
-などなど。 
- 
-*** 動作環境 [#tdf70b20] 
-PHP5 (PHP4で動くかどうかわかりません) 
-mysql5  (mysql4.0でも、たぶん動くと思います) 
-xoops-2.0.16a-JP、 XOOPS_Cube_Legacy-2.1.6 (それ以前でも動くと思います) 
-d3forum-0.85 (それ以前でも動くと思います) 
- 
-** 準備 [#l0ef58ec] 
- 
-*** d3forumモジュール [#u90e3458] 
- 
- まず、d3forumの最新版をインストールします。 :-D 
-当方、d3forum-0.85で動作確認しました。 最新版でなくても動作すると思いますが、未検証です。 
- 
- また、最初にカテゴリの作成と権限設定までは行っておいてください。 各フォーラムは、スクリプトによってカテゴリ内に自動的にYYBBSの各トピックと同じ名称で作られます。 (フォーラムの権限はカテゴリの権限を引き継ぎます。) 
- 
-続いて、スクリプト1つと、 カスタムテンプレート1つを準備します。 
- 
-*** スクリプト import_yybbs.php [#i47480f7] 
- 
- 以下のzipファイルをダウンロードし、解凍後、(trust_path)/modules/d3forum/main/ ディレクトリ内にアップロードします。 文字コード「EUC-JP」で保存してありますので、UTF-8などで運用中の方は、ファイルの文字コード変換を行ってください。(コメントだけなので、変換しなくても動作するかもしれません。) 
- 
-|ダウンロードはこちら -> (zip)&br;php4.0系でエラーの対策(?)版| 
- 
- なお、サーバー負荷の上昇を抑えるため、記事単位でインポート直後のトピック同期処理は初期設定では「不使用」としていて、インポート後に管理画面で同期が必要です。  サーバー能力に余裕があって大丈夫と判断する場合は、import_bluesbb.php 内の冒頭の、以下の記述を変更することで、記事1件ごとにsync動作が入るようになります。(お勧めはできません) 
- 
-#code(php,1-){{ 
-$sync_each_post = false ; 
-// ↓ 書き換え 
-$sync_each_post = true ; 
-}} 
- 
-*** テンプレート _custom_yybbs4_d3forum.html [#z4561893] 
-Altsysの「テンプレート管理」-「カスタムテンプレート」で、以下のコードを「_custom_yybbs4_d3forum.html」として作成します。 
- 
-#code(html,1-){{ 
-<h2>YYBBS -> d3forumインポート</h2> 
- 
-<{* あなたのuid=<{$bl4d3f_uid}><br /> *}> 
-<{if $bl4d3f_isadmin}> 
-実行権限:OK 
-   <form name="MainForm" action="./index.php?page=import_yybbs" method="post"> 
-  <{if $bl4d3f_step==0}> 
-   <{if count($bl4d3f_bl_topics)>0 }> 
-       YYBBSの掲示板名: 
-       <select name="bl_topic_id"> 
-       <{foreach item=topic from=$bl4d3f_bl_topics}> 
-       <option value=<{$topic.topic_id}>><{$topic.topic_name}></option> 
-       <{/foreach}> 
-       </select><br /> 
-   <{/if}> 
-     <{if count($bl4d3f_categories)>0 }> 
-       インポート先d3forumカテゴリ 
-       <select name="cat_id"> 
-       <{foreach item=category from=$bl4d3f_categories}> 
-       <option value=<{$category.id}>><{$category.title}></option> 
-       <{/foreach}> 
-       </select><br /> 
-   <{/if}> 
-  <{elseif $bl4d3f_step==1}> 
-   <{if $bl4d3f_forum_created}> 
-       d3forumのカテゴリ「<{$bl4d3f_cat_title}>」に、フォーラム「<{$bl4d3f_forum_title}>」を作成しました。<br /> 
-   <{else}> 
-       d3forumのカテゴリ「<{$bl4d3f_cat_title}>」に、既存フォーラム「<{$bl4d3f_forum_title}>」が存在しました。<br /> 
-   <{/if}> 
-       YYBBSの掲示板名:<{$bl4d3f_forum_title}> から 
-       d3forumのフォーラム名:<{$bl4d3f_forum_title}> に、以下のスレッドをインポートします。<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('bl4d3f_thread')>=0){elements[i].checked=this.checked;}}}" />全選択/解除</th><th align="center">スレッド</th><th align="center">トピ開始日時</th></tr> 
-       <{foreach key=num item=thread from=$bl4d3f_threads}> 
-       <tr class="<{cycle values='odd,even'}>"><td align="center"><input type="checkbox" name="bl4d3f_thread[<{$num}>]" value="<{$thread.id}>" /></td><td><{$thread.title}></td><td align="center"><{$thread.inputdate|date_format:"%Y年%m月%d日 %H時%M分"}></td></tr> 
-       <{/foreach}> 
-       </table> 
-       よろしければ「送信」してください。<br /> 
-   <input type=hidden name="cat_title" value=<{$bl4d3f_cat_title}> /> 
-   <input type=hidden name="cat_id" value=<{$bl4d3f_cat_id}> /> 
-   <input type=hidden name="forum_title" value=<{$bl4d3f_forum_title}> /> 
-   <input type=hidden name="forum_id" value=<{$bl4d3f_forum_id}> /> 
-   <input type=hidden name="bl_topic_id" value=<{$bl4d3f_bl_topic_id}> /> 
-  <{elseif $bl4d3f_step==2}> 
-       インポートが完了しました。<br /> 
-       最初のページに戻るには下のボタンで送信してください。<br /> 
-  <{/if}> 
-   <input type=hidden name="page" value="import_yybbs" /> 
-   <input type=hidden name="step" value=<{$bl4d3f_step_next}> /> 
-   <input type=submit value="送信" /> 
-   </form> 
-<br /> 
-<{else}> 
-実行権限:NG 
-権限がありません。 
-<{/if}> 
-}} 
- 
-** 実行 [#q2ffbb8b] 
-*** フォーラム・カテゴリ選択 [#ydbe737b] 
-管理者でログインし、以下のアドレス(実際のサイトに応じて読み替え)にアクセスします。 
- 
- /modules/(d3forum)/index.php?page=import_yybbs 
- 
-下記のようにエクスポート元YYBBSのトピリスト(d3forumで言うフォーラムに当たる)、インポート先d3forumのカテゴリリストが出ますので、それぞれ選択して「送信」を押します。 
- 
-|| 
- 
-*** スレッド選択 [#wd1b9c57] 
- インポート先d3forumのカテゴリにフォーラムが作成されました。(作成済みの場合は新たに作られず、作成済みのフォーラムがこの後のインポート先になります。) 
- 
- 続いて、選択したYYBBSの掲示板から、スレッド一覧(d3forumで言うトピックに当たる)が表示されます。 「全て」選択すると、記事数によってはサーバーにかなりの負荷がかかりますので、適宜様子を見ながら、少しずつインポートすることをお勧めします。 選択後、「送信」ボタンで実際にインポートが行われます。 
- 
-|| 
- 
-*** インポート完了 [#hb589b06] 
- インポートが完了しました。 「送信」を押すと、最初の画面に戻ります。 
-|| 
- 
-*** 同期処理 [#xaa63ff4] 
- 全てのインポートが終了したら、管理画面に入り、d3forumの「冗長情報の同期」の「トピック」を実行してください。 その後、念のため「フォーラム」「カテゴリ」も同期処理を行ってください。 
- 
-*** 権限設定 [#cdfe1de6] 
- 各掲示板の権限設定など、必要に応じて行ってください。 
- 
-*** スクリプトの削除 [#sc6e0677] 
- インポート作業が完了したら、セキュリティホールになりえるかも知れませんので&font(Red){、必ずサーバー上からスクリプトを削除してください};。 
- 
-*** 結果 [#k3d1c6ad] 
- 添付画像のサムネイル表示・リンクとも、うまくインポートされているようです。 
- 
-** 謝辞 [#c480e377] 
- このスクリプトの作成・公開にあたり、BluesBB、d3forumのコードを参考にさせていただき、ました。 作者のSting_Band氏、GIJOE氏に、御礼申し上げます。 
- 
- 特に、d3forumのほうは一部「transact_functions.php」などのソースincludeさせていただきました。 この中の「d3forum_sync_topic」プロシジャが無かったら、すんなり行かなかったと思います。 


トップ   編集 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 0, today: 0, yesterday: 0
Wiki新着ページ 

メインメニュー