bbPress(bbPress 1.1)で画像などのファイルの添付機能をもつプラグイン。
bbPress Attachments « bbPress Plugin Browser
しかし、ココのにあるbbAttachemtns のバージョン0.2.9はうまく動かないとの報告がある。
フォーラムbbpress.org/plugins/topic/bb-attachments/page/18/に修正場の投稿があるのでこちらを使わせて頂く。
plugins-svn.bbpress.org/bb-attachments/trunk/
ただし、 zip などでまとめられていないので、bb-attachments と言うフォルダーを作ってそこに、ひとつづつファイルをダウンロードする。
その後、bbPressのmy-plugins にアップロードし、有効化する。
・Webドキュメントルートのひとつ上の階層に画像ディレクトリ「bb-attachments」を作成する。
例:/home/hoge/bb-attachments
・bb-attachmentsを書き込み可能にする。(777)
ここで問題が発生!
私の使っているロリ・ポップのサーバーはドキュメントルートより上の階層にはアクセス出来ない。
なので、この画像画像ディレクトリをbb-attachments.phpと同じ場所に置く事にした。
そのためにはbb-attachments.phpを一部修正する必要がある。
68行目
$bb_attachments['path']=dirname($_SERVER['DOCUMENT_ROOT'])."/bb-attachments/";
を
$bb_attachments['path']=rtrim(dirname(__FILE__),' /\\').'/bb-attachments/';
に修正する。
これで、ファイルをアップロード出来るようにはなったが、画像が表示されない。
画像ファイルがアップロードの際に壊れてしまっている様だ。
どうも、アップロード中にPHPでエラーが出てそのメッセージが画像ファイルに埋め込まれてしまっているのが原因のようだ。
<br />
<b>Warning</b>: set_time_limit() [<a href='function.set-time-limit'>function.set-time-limit</a>]: Cannot set time limit in safe mode in
<b>/home/users/bbpress/my-plugins/bb-attachments/bb-attachments-init.php</b> on line <b>495</b>
<br />
bb-attachments-init.phpの495行目付近を調べると、set-time-limit(0)というPHPの関数が失敗しているようだ。
これは PHP の設定で、PHP が、”safe_mode ON” に設定されていると、set-time-limit がエラーになるようなので、safe mode を OFFにする必要がある。
php.ini を編集するればいいのだが、ロリ・ポップでは直接編集出来ないので、ロリ・ポップの管理画面から設定する。
その他、WordやExcelのファイルもアップロード出来る様に、bb-attachments.phpの26行目付近に’application/msword’ , ‘application/msexcel’ を追加する。
$bb_attachments['allowed']['mime_types']['default']=array('text/plain', 'image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'application/pdf', 'application/x-pdf' , 'application/msword' , 'application/msexcel','application/zip','application/x-zip'); // for anyone that can upload
そして、アップロードファイル容量の上限はbb-attachments.phpの30行目〜35行目付近を変更する。