PHP7とHTML5に対応したお絵かきBBS『POTI-board改』を設置する!

WordPressにお絵かき機能を入れようと思った自分。
HTML5でお絵かき機能、どっかからパクろう(直球)と目を付けたのが、お絵かきBBS。
そこで1回設置しようとした際のお話。
WordPressにお絵かきプラグイン入れたい話はコチラ

最初うまく動かなくて困った人間の『単純設置方法』メモ

PHP7でHTML5版のお絵かきBBSの設置方法

  1. POTI-board改とテンプレートシリーズにある、POTI-board改をGitHubからダウンロード。
  2. 『poti-kai/potiboard/potiboard.php』にブラウザから見れば使うのは完了。index.htmlが出来てる。
  3. config.php(設定ファイル)の中身を色々変更しておく(パスワードや画像サイズ)

これで解らなければ、お絵かき掲示板簡単設置方法 2019年版: STP^3が解りやすいので、そっち見てほしい。

NEOをアップデート

neoのGitHubをダウンロードし、『neo/dist/』の『neo.css』『neo.js』を先程作成したBBSのものと置き換えるだけ。

自分が困った点

『PHP Fatal error』で動かない問題!

設置時『PHP Fatal error: Call to undefined function gd_info()』とかエラーが出て動かなくなった。
NEO版potiboard.phpでも、エラーは出るものの、動きはしたのに…

と調べてみたところ、どうやらPHP7用に修正される際にgd_info()チェックが追加された様子。
つまりgd_info()が動いていないことが原因。

しかしサーバには『gd2』を入れていた
なのに、有効になれば表示されるはずのphp_info()にも、gd欄がない
つまりgd_info()も動いていない。

入ってるのにな~とか入れ直しとかしてみたけど、結局自分は『gd2』と『gd』と両方入れることで解決とした。

eval()で作ったPHPが正しくないからエラー吐く

これを治すとなると結構面倒。
いっそ無視することにした。

『htmltemplate.inc』内の384行目のeval頭に@を付ける。

ob_start();
@eval('?>' .$code);
$cnt=ob_get_contents();

こんな感じ。

テンプレート多い…

テンプレートを変えるとなると、そのディレクトリに増やすのがツラい。
元のを消さないとどんどん増えるし。
増やしたり、減らしたりが、分かりづらい。
なので、テンプレート専用ディレクトリを作ることにした。
テンプレートを階層構造に分ける方法についてはコチラ

config.phpの書き換えた方がいい内容

管理者パス(ADMIN_PASS)は必須。
投稿容量制限(MAX_KB)・投稿サイズ(MAX_W、MAX_H)は、現在だと少し小さい気がする。
強制サムネイル機能(FORCED_THUMB)は、個人的には切っておきたい。

あとは『TITLE』や『HOME』など環境にあわせて変更してください。

gitで更新対象外設定ファイルを追加した

『_config.php』があれば読み込むようにして、そのファイルはgit管理から外す。
管理パスワードとかgit管理にしたくないものを書いておく用。
なければ無いでcongif.phpあれば動くようにしている。

更新したいものはconfig.phpのdefine項目に、definedチェック付ける。
ジワジワ増えていくのであろう。

テンプレートの階層構造に変更

割と単純に書き換えるだけで何とかなる。
ただし、修正場所は複数ファイル。

テンプレート用フォルダを作る

『themes』フォルダを作成し、その中に解凍したテーマを丸ごと置いた。

つまり下記のように配置になる。
 themes/テンプレート名/テンプレートファイル

今回は『nee』テンプレートを例として、下記に記載しておく。

template_ini.php

テンプレートの設定。

//メインのテンプレートファイル
define('MAINFILE', "themes/nee/nee_main.html");

//レスのテンプレートファイル
define('RESFILE', "themes/nee/nee_main.html");

//その他のテンプレートファイル
define('OTHERFILE', "themes/nee/nee_other.html");

//お絵かきのテンプレートファイル
define('PAINTFILE', "themes/nee/nee_paint.html");

//カタログのテンプレートファイル
define('CATALOGFILE', "themes/nee/nee_catalog.html");

config.php

全体的な設定。
zipに同梱されてない場合は変更しなくてもいい。

//パレットデータファイル名
define('PALETTEFILE', 'themes/nee/palette.txt');

potiboard.php

掲示板本体。
zipに同梱されてない場合は変更しなくてもいい。
そもそもアプレットのヘルプファイルだから、使うのかな…?

//アプレットヘルプのファイル名
define('SIIHELP_FILE' , 'themes/nee/siihelp.php');

テンプレートファイル

template_ini.phpに設定したファイル。

<link rel="stylesheet" href="themes/nee/nee_main.css" type="text/css">

というように、jsやcssをテンプレート場所にあわせる。

これはテーマによるので、各々で頑張って!

コメント

タイトルとURLをコピーしました