masahirorの気まま記録簿

個人的な出来事や意見、生活などの記録を思うままにブログに記録

XOOPS設置で悪戦苦闘

会社の部門内の情報共有にWikiとMantisを導入している。

しかし、サイトが別々に分かれており、ログインIDの共有ができなかったり、Wikiのページ毎に細かくアクセス権が設定できなかったので、使ってはいるものの利便性が悪く悩んでいた。
色々調べていると、「XOOPS」というCMS(コンテンツ管理システム)を見つけ、そのモジュールとしてPukiWiki互換の「PukiWikiMod」というものを見つけた。

さらに、mantisのモジュールも見つけた。

これらを同じ「XOOPS」のモジュールとして組み込む事で、アカウントIDの共有、PukiWikiのページ毎に細かくアクセス権を設定、同じページからメニューで行き来できる、などが可能となる。
これで簡素化できた、と思ったが、ある程度移行作業が必要。


まず、PukiWikiの「Wiki」フォルダ内のファイル名を、多少変更してから、PukiWikiModの「Wiki」フォルダにコピーする。具体的には、

  • 「AAAA.txt」

というファイルがあったら、

  • 5B5BAAAA5D5D.txt」

と、頭に「5B5B」、拡張子手前に「5D5D」を追加する。
同様に、「Attach」フォルダ内の添付ファイルのファイル名も変更する。例えば

  • 「AAAA_BBBBB」(拡張子なし)

というファイル名だったら、

  • 5B5BAAAA5D5D_BBBBB」

と、頭に「5B5B」、アンダーバー手前に「5D5D」を追加する。「*.log」ファイルは消しても問題ない。
ちなみに、これらファイル名の一括置換には「Change!」というソフトを使用。

DH-APPLI-お手軽名前変更ツール Change!
株式会社ドリームハイブ :http://www.dreamhive.co.jp/dhappli/change.html


これでWikiページは移行前と同じく、問題なく見れるようになった。しかし、添付ファイルがダウンロードできないという問題に遭遇。具体的には、日本語名の添付ファイルに関して、そのファイルが添付されたページを開いても、ちゃんとしたファイル名が表示されず、例えばファイル名が「日本語.txt」だったら「.txt」と表示されてしまう。さらに、クリックしたら「ファイルが見つからない」のエラー。
これの原因が分からず、色々調べたがお手上げ。これさえ解決したら、完全移行して今後はXOOPSで楽に管理できるようになるのに・・・
(ちなみに、環境はFedora5+Apache2+PHP5)

追記

ソースレベルで調べていくと、原因と思われる箇所が判明。
PukiWikiModの「plugin」フォルダ内にある「attachi.inc.phpというファイル。
このファイルの727行目付近にある

$this->file = basename(str_replace("\\","/",$file));

という箇所を、オリジナPukiWiki「attachi.inc.phpに合わせて

$this->file = preg_replace('#^.*/#','',$file);

と変更したら、添付ファイルも正常に表示されるようになりました。とりあえず問題も解決し、移行を進めることができた。
丸2日原因究明し、見つかったのが火曜日。久々にプログラムソース追って疲れた・・・
(この質問および自己解決レスはPukiWikiModのフォーラムにも書かせていただきました)