afbbs: Customize

この文書では、セットアップ後に、BBSの見栄えを変更(カスタマイズ)する方法について解説します。
インストール方法については「install.html」を、一般的な管理/運用方法については「admin.html」をごらんください。


0)ボードの表示形式を変更する

表示の元になるテンプレートファイル「_TMPL」は、「bbsfiles」ディレクトリの中に入っています。afbbsでは、テンプレートファイルを変更することによって、ボードの表示形式(色/フォント/レイアウト/画像の配置など)を手軽に変更できるようになっています。

0-a) 標準の表示形式を変更する

「bbsfiles」ディレクトリ内にある「_TMPL」を編集することで、標準の表示形式を変更できます。ボード専用のテンプレート(次項で解説)がない場合、afbbsは常に「_TMPL」の設定を参照します。

↑戻る

0-b) ボードごとに表示形式を変更する

「afbbs.cgi」を標準設定のまま使用している場合、firstとsecondというふたつのボードが存在します(ありますよね?)。たとえば、この「second」ボードの表示を変更したい場合、

  1. 標準の「_TMPL」を「second_TMPL」という名前でコピーする
  2. 「second_TMPL」を編集する
  3. 「second_TMPL」を「bbsfiles」ディレクトリ内にアップロードする

という手順で、表示方法を変更できます。

↑戻る

1) サンプルのテンプレートを使う

tmpls」ディレクトリの中には、サンプルとしてすぐに使用できるテンプレートが収められています。

  1. 適当なテンプレート(「xxx_TMPL」というファイル名になっています)を、ブラウザで開いてみてください。所々に出てくる変な単語以外は、この画面がそのままafbbsでの表示になります。
  2. ftpソフトを使い、お好きなテンプレート(ここでは「blue_TMPL」とします)を「bbsfiles」ディレクトリにアップロードします。アップロード時の形式には、「ASCII(Text)」を指定してください。
  3. ftpソフトやtelnetを使用して、アップロードした「blue_TMPL」を「_TMPL」というファイル名に変更します(変更方法がわからない場合は、あらかじめファイル名を「_TMPL」に変えてからアップロードしても結構です)。
  4. ブラウザからafbbsを呼び出して結果を確認してください。うまく外観変更できましたか?
  5. 背景画像やページの表示色は、テンプレートの<body>タグで変更できます。メッセージや掲示板の説明を追加したり、<img>タグで画像を盛り込んだりするのも良いでしょう。ボード毎に別々のテンプレートを設定すれば、さらにユニークな掲示板になります。
↑戻る

2)テンプレートの特殊コメントと変数

編集したいテンプレートファイル(標準の場合は「_TMPL」、「second」ボードの場合なら「second_TMPL」)を、適当なエディタで開いてください。ぱっと見ると、普通のHTMLファイルとほとんど同じ形式であることが分かると思います...が、「<!--NAME-->」のようなコメントや「$(NAME)」のような妙な文字列もたくさん含まれていますね。ここでは、これらのコメントや文字列の意味について説明します。

2-a) <!--NAME--> コメント

英大文字のコメントで囲まれた部分は、状況に応じて表示したり表示しなかったりする部分です。すべてのコメントは、<!--NAME-->ではじまり、ふたたび<!--NAME-->が現れると終了するようになっています。はじまりだけあって終わりがない場合、正しく表示されなくなってしまうので注意してください。

<!--LOGIN_MES-->

このコメントで囲まれた部分は、毎回のログイン時(最初にボードを訪れた時)にのみ表示されます。 ボードの内容を読みすすめる間や、投稿をした後などには表示されません。 ここには、ウェルカムメッセージとして、ごあいさつや、ボードを訪れた時間などを入れておくとよいでしょう。

<!--SUBMIT_FORM-->

このコメントで囲まれた部分は、投稿用のフォームです。「リードオンリー」モードでは表示されません。

↑戻る

2-b) $(NAME) 変数

$(NAME)となっている部分は、afbbsが持っている情報(ボード名など)にそのまま置き換えられます。いわゆる変数です。
あらかじめ分かっている部分については、$(NAME)を使わずにそのまま書き込んでしまっても構いませんが、変数を使ったほうが、プロバイダを移行したい場合などに楽に対処できます。また、どうしてもシステムから取り出さなければならない情報(ユーザのハンドル名など)は、必ず変数を使う必要があります。

$(SYSOP_MAIL)

この変数は、ボードの管理者のメールアドレスに置き換えられます。 「afbbs.cgi」で指定している、$SYSOP_MAIL='**'が、そのまま置き換えられます。

$(LINK)

ここには、このafbbsで管理している他のボードへのリンクが一覧表示されます。 一覧表示を消してしまいたい場合は、なくしてしまってもよいでしょう。

$(BOARD_NAME)

この変数は、ボードの「リンク名」に置き換えられます。 「リンク名」は「afbbs.cgi」の中で@BOARDSとして指定されています。たとえば、

first	第一掲示板	2

のようになっている場合、$(BOARD_NAME) 変数は「第一掲示板」に置き換えられます。

$(HANDLE)

これは、ユーザのハンドル名に置き換えられます。ハンドル名は投稿時にCookieで取得しますので、まだ一度も投稿をしたことがない人の場合、ここには何も入りません。

いらっしゃいませ、$(HANDLE) さん

などとすると、

いらっしゃいませ、 さん

のように表示されてしまうことがあるので注意してください。(スイマセン...byフナイ)

$(LAST_VISIT)

これは、アクセスしたユーザが前回ログインした時刻を表示します。ログイン時刻のデータは、新着記事がなかった場合には更新されないので注意してください。

$(NOW)

これは、(サーバ上の)現在時刻を表示します。

$(LIST_HEAD)  =モードのタイトル(「日付順一覧: xx年xx月」等)
$(HEAD_MENU)  =モードメニュー
$(LIST_BODY)  =記事本体(一覧/選択表示ともに共通)
$(FOOT_MENU)  =フットメニュー
$(MONTH_MENU)  =「月」メニュー(日付順一覧/最近の一覧で表示)

これらは、記事を表示するために必要な変数です。消してしまうと表示ができなくなってしまうので、必ずテンプレートのどこかに含めるようにしてください。順番は入れ替えても大丈夫です。

$(CANCEL_FORM)

これは、投稿直後に記事を取り消したい場合の「取り消しボタン」を表示します。これをなくしてしまうと、取り消しができなくなりますので、なくさないほうがいいでしょう。 管理者削除機能使用時のパスワード入力フォームも、ここに表示されます。

$(BOARD_URL)

「afbbs.cgi」のURLに置き換えられます。これはこのまま変更しないほうがヨイです。 このまま残しておけば、プロバイダやディレクトリ構成を変更しても大丈夫です。

$(TITLE)
$(PARENT)
$(QUOTE)

これらは、ボードの投稿フォーム内で使用していますので消さないようにしてください。順に、デフォルトの記事タイトル、投稿記事の親記事番号、元記事からの引用(選択表示の場合)です。

$(VERSION)

この変数は、afbbsのバージョン番号に置き換えられます。

↑戻る

3)システムメッセージの変更

テンプレート先頭部に特殊なコメントを付加することで、「話題順一覧」「内容を表示」などのシステムメッセージをカスタマイズすることが出来ます。レイアウトや色の変更で物足りない方は、以下の解説を参考にしてください。

3-a)「CFG」コメントの実例

通常のテンプレートファイルの第1行以降(DTD宣言の前)に、以下のようなコメント文を付加します。

<!--CFG
READ_ATCL
内容を表示させる
CFG-->

編集したテンプレートを「bbsfiles」ディレクトリに設置してください。一覧モードで表示される「内容を表示」というメニューが、「内容を表示させる」にカスタマイズされたはずです。

↑戻る

3-b)「CFG」コメントの書式

メッセージ指定用のコメントは、以下のような書式を持っています。

<!--CFG
変数名
メッセージ
変数名
メッセージ
: :
: :
CFG-->

設定部分は「<!--CFG」と「CFG-->」で囲み、変数名とメッセージを1行づつ交互に書いていきます。「afbbs.cgi」の前半部にあるメッセージ設定部分がこれと全く同じ書式なので、必要な部分を「afbbs.cgi」からコピー&ペーストして書き替えるのが楽チンです。

↑戻る

3-c)「CFG」コメントの変数

「CFG」コメントで使用できる変数と、デフォルトのメッセージについて、以下にリストを挙げます。リストは、「変数=『デフォルトのメッセージ』」の形で書かれています。

HIDE_ARTCL =「内容を隠す
READ_ARTCL =「内容を表示
MODE_RD =「単記事選択
MODE_TR =「話題順一覧
MODE_MT =「日付順一覧
MODE_RC =「最新の一覧
MODE_NW =「新着あり!
MODE_DL =「記事の削除

これらのメッセージは、各モードのタイトルとモードメニューの表示に使用されます。

ATCL_HEAD =「<tt><big>#%s %s / %s [%s]</big></tt>」

「ATCL_HEAD」は、記事見出しの表示に使用されます。「%s」となっている部分は、順に「記事番号」「記事タイトル」「投稿者名」「投稿時刻」に置き換えられます。

FOOT_TR =「話題順
FOOT_NB =「日付順
PREV_MES =「←前の記事
NEXT_MES =「次の記事→
PREV_PG =「←前のページ
NEXT_PG =「次のページ→

これらは、フットメニューの表示に使用されます。

FORM_CANCEL =「 #%sを取り消す
FORM_PW =「管理パスワード:

この2つは、記事取り消しボタンと管理パスワードフォームの表示に使用されます。

MT01〜MT12 =「%s年 1月」〜「%s年12月
WK0〜WK6 =「」〜「

「MTxx」は月名の表示に、「WKx」は曜日の表示に使用されます。「WKx」の方は、「WK0」から始まるので注意してください。

↑戻る

Original Document by Yukimasa Takano (takano@readmej.com).
Modification & Distortion by Akira Funai (akira@funai.com).