概要
BluesBB ・・ ツリー表示や某巨大掲示板サイトのようなスレッド一覧表示が可能な、xoops用掲示板モジュール。 2年前にLAFESTAcafe.をリニューアルした時、 KENT-WEBさんで配布されていたcgi掲示板「WEB-FORUM」からの後継として、ツリー構造で全体を見通せる、このモジュールを選んだのでした。
しかし、使い込むうちに書き込みの移動ができないなどの不満が高まり、一方でd3forumは高いセキュリティ性能やコメント統合を始めとする機能アップが進んで、「早く乗り換えたい」と考えていました。
とはいっても、手作業での移行は辛すぎます。 ネットで調べても、引越し用ツールは無いみたい・・ ということで、一念発起して(大げさか) 自分で作ってみましたので、公開してみます。
なお、毎度のお約束ですが、小生のスキルはそれほど高くありませんので、不具合が出る可能性があります。 いきなり本番環境で実行するのはもってのほか。私でもやりません(笑) まずはテスト環境で実行してみて、続いて本番環境に d3forumの複製フォーラムを作ってそこにインポートしてみるなどして、問題なければ本番モジュールで実行して下さい。
特徴
特徴というほどでもありませんが、
- d3forumに既にある記事はそのままで、インポート可能
- ツリー構造の維持
- フォーラムの自動作成
(BluesBBのトピック名と同名で作成。作成先カテゴリを選択可能。) - トピック単位で選択インポート
- インポート済みのトピックは自動スキップ
(このため、同トピックにインポート後に付いた返信は、インポートできません)
などなど。
動作環境
PHP5 (PHP4で動くかどうかわかりません)
mysql5 (mysql4.0で動いた報告あり)
xoops-2.0.16a-JP、 XOOPS_Cube_Legacy-2.1.6 (それ以前でも動くと思います)
d3forum-0.85 (それ以前でも動くと思います)
d3forumモジュール
まず、d3forumの最新版をインストールします。
当方、d3forum-0.85で動作確認しました。 最新版でなくても動作すると思いますが、未検証です。
また、最初にカテゴリの作成と権限設定までは行っておいてください。 各フォーラムは、スクリプトによってカテゴリ内に自動的にBluesBBの各トピックと同じ名称で作られます。 (フォーラムの権限はカテゴリの権限を引き継ぎます。)
続いて、スクリプト1つと、 カスタムテンプレート1つを準備します。
スクリプト import_bluesbb.php
以下のzipファイルをダウンロードし、解凍後、(trust_path)/modules/d3forum/main/ ディレクトリ内にアップロードします。 文字コード「EUC-JP」で保存してありますので、UTF-8などで運用中の方は、ファイルの文字コード変換を行ってください。(コメントだけなので、変換しなくても動作するかもしれません。)
ダウンロードはこちら -> import_bluesbb_0.2a.zip(zip) php4.0系でエラーの対策(?)版 |
なお、サーバー負荷の上昇を抑えるため、記事単位でインポート直後のトピック同期処理は初期設定では「不使用」としていて、インポート後に管理画面で同期が必要です。 サーバー能力に余裕があって大丈夫と判断する場合は、import_bluesbb.php 内の冒頭の、以下の記述を変更することで、記事1件ごとにsync動作が入るようになります。(お勧めはできません)
1 2 3 |
|
テンプレート _custom_bluesbb4_d3forum.html
Altsysの「テンプレート管理」-「カスタムテンプレート」で、以下のコードを「_custom_bluesbb4_d3forum.html」として作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
|
フォーラム・カテゴリ選択
管理者でログインし、以下のアドレス(実際のサイトに応じて読み替え)にアクセスします。
/modules/(d3forum)/index.php?page=import_bluesbb
下記のようにエクスポート元BluesBBのトピリスト(d3forumで言うフォーラムに当たる)、インポート先d3forumのカテゴリリストが出ますので、それぞれ選択して「送信」を押します。
実体ページ:inc/blBB_d3f
関連ページ:WebForum(cbbs) --> d3forum インポートに挑戦
関連ページ:ImageBoard(1.2) --> d3forum インポート
関連ページ:YYBBS --> d3forum インポート
習作:WordpressME(xoops版)のMT形式エクスポート |
インポートScript |
WebForum(cbbs) --> d3forum インポートに挑戦 |
コメント一覧
投稿ツリー
-
Re: BluesBB ?> d3forum インポートに挑戦
(shige, 2009/4/29 15:07)
-
Re: BluesBB ?> d3forum インポートに挑戦
(なーお, 2009/4/29 16:14)
-
Re: Re: BluesBB ?> d3forum インポートに挑戦
(shige, 2009/5/1 22:03)
-
Re: Re: BluesBB ?> d3forum インポートに挑戦
(なーお, 2009/5/1 22:15)
-
Re: Re: BluesBB ?> d3forum インポートに挑戦
(shige, 2009/5/2 2:00)
-
Re: Re: BluesBB ?> d3forum インポートに挑戦
(なーお, 2009/5/2 8:07)
-
Re: Re: BluesBB ?> d3forum インポートに挑戦
(SHIGE, 2009/5/2 14:36)
-
Re: Re: BluesBB ?> d3forum インポートに挑戦
(なーお, 2009/5/2 15:46)
-
Re: Re: BluesBB ?> d3forum インポートに挑戦
(SHIGE, 2009/5/2 23:28)
-
Re: Re: BluesBB ?> d3forum インポートに挑戦
(なーお, 2009/5/3 0:47)
トピック
-
Re: BluesBB ?> d3forum インポートに挑戦
(なーお, 2009/4/29 15:07)
-
Re: BluesBB ?> d3forum インポートに挑戦
(なーお, 2009/9/17 23:35)
shigeさん、こんにちは。
bluesBBのバージョンが、1.0.4なんですね。 テーブル構造を確認していませんが、同じでない可能性もあるのかなあ。 ?> (追記)確認しましたがver1.0.3から変更なく、ここは問題ないですね。
また、bluesBBのディレクトリ名が変更されていたりしますか?
その場合は、21行目の記載も要変更です。
もしそうでも無い場合は、たぶんMySQL4.0環境への対応が不十分だった可能性があります。
試しに次のスクリプトに変更して、同様に必要箇所を編集してお試し下さい。 (こちらにはMySQL4.0環境が無いので未確認ですが)
これでもだめなら、スクリプトの文字コードを変換して試してみる、とかかなあ。。
なーおさん、こんにちは。早速のアドバイスありがとうございます。
確認に手間取り、返信が遅くなりました。
結果的に残念ながら、同じエラーで止まってしまいます。
bluesbbのディレクトリ名は変更してません。データベースも確認しましたが、bluesbbでした。
また、EUCで運用していますが、一応、UTF8に変換しましたが、同じエラーが出ました。
必要箇所を編集してとありますが、どこか必ず編集する場所がありますか。説明文を読み落としていたら、申し訳ありません。
shigeさん
そうですか。。
もしかしたらですが、21行目の
$bl_dirname = 'bluesbb'; //bluesBBのDBテーブルprefix
を、
$bl_dirname = "bluesbb"; //bluesBBのDBテーブルprefix
に変更してトライしてみていただけますか?
ちょっと恥ずかしいミスでした。
必要箇所を編集してとありますが、どこか必ず編集する場所がありますか。説明文を読み落としていたら、申し訳ありません。
いえ、その他特に変更すべきところはございません。
何度もありがとうございます。直して試しましたが、うまくいきませんでした。
sqlもPHPも何もわかってないので、的はずれかも知れませんが、$bl_dirnameで検索していたら、42行目の
$sql = "SELECT * FROM "'.$db->prefix($bl_dirname."'_topic')." WHERE true ORDER BY cat_id, topic_order, topic_id";
ってとこだけ、他の行と書式が違うように思ったので、カンで
$sql = "SELECT * FROM ".$db->prefix($bl_dirname."_topic")." WHERE true ORDER BY cat_id, topic_order, topic_id";
に直してやってみましたが、やはりダメでした。
shigeさん
申し訳ありません。
どうやら、ver0.2のzipファイル作成時に、変更途中のファイルをパックしてしまったようです。
ただいま、ver0.2aとして本文のほうに最新版リンクをアップしました。 お手数ですが、再度お試しいただけますでしょうか。
よろしくお願いします。
対応ありがとうございました。
ただ、残念ながら、同じ
「SQLエラーが発生しました45」
というメッセージで止まってしまいます。
スクリプトの置き場所も、カスタムテンプレートも確認しましたが、正しいと思います。
ただ、もともと、mysql4は対象外なのを見落としていたので、申し訳ないです。
SHIGEさん
現象としては、データベーステーブルが見つからないときと同じですね。 データベースがあって、空の状態も試してみましたが、エラーは起こりませんでした。
こうなったら、あとは42行目を
42 |
|
(090502-16:05修正)
あるいは、もっと直接的に
42 |
|
とだけしてみて、どうでしょう。。
MySQL4.0の環境が無くて、これ以上は難しいです。
(登録までしていただいたのに、残念ですね。。 本当にMySQLのバージョンの問題なのかどうかも不明ですので、私なりにもう少し突っついてみます。 でも過度の期待はしないでくださいね。 何せ私もそんなに詳しくなくて勉強しながらですので。。)
なーおさん、皆さん、こんにちは。
いつまでも、ゲストも失礼なので、アカウント取りました。よろしくお願いします。
さて、アドバイスに従って、直接的に指定してもダメだったので、ローカルで、mysql5のテスト環境を作り、色々やっているうちに原因がわかりました。ファイルの置き場所を「admin」から、「main」に変えてやったところ、何の問題もなくスムースに、コピー出来ました。
d3forumのページの他のリンクのpage=以下のオプションがmainフォルダにあるファイルだったので、試しにやったら、うまくいきました。ただ、入れた覚えがない「import_bluesbb.php」がmainフォルダに入っていたので、もしかしたら、adminから、コピーするのかも知れませんが、同名のファイルがあると更新しないのかも知れません。
お陰で、無事にインポートが出来ました。ありがとうございます。何度もアドバイスありがとうございました。
ついでに、YY掲示板からのインポートも出来るといいなあ。(クレクレ)
SHIGEさん、こんばんは。
うまくいったようで、良かったです。 おかげでMySQL4.0での動作実績ができました。
さて、アドバイスに従って、直接的に指定してもダメだったので、ローカルで、mysql5のテスト環境を作り、色々やっているうちに原因がわかりました。ファイルの置き場所を「admin」から、「main」に変えてやったところ、何の問題もなくスムースに、コピー出来ました。
あれれ、trust側スクリプトの冒頭にも、ここにも書いておきましたとおり、mainフォルダ指定で作ってありました。 (スクリプトを置き換えてもなかなか解決しなかった)原因はそこだったのですね。。
あと、bluesBBからのインポート後にd3forumのtopic一覧を見ると、投稿者「ゲスト」ばかりが並んでしまいますが、ゲスト名を表示するのに、ここの投稿も参考にしてみてください。
ついでに、YY掲示板からのインポートも出来るといいなあ。(クレクレ)
YY-BOARDは以前CGIの頃は使っていたのですが、xoops版は使ったことがありません。 1日もあればできると思いますので、気が向いたらそのうち・・ (お約束はできませんが。)
ではでは。