homeホームHTMLに役立つヒントマニュアルに書いてないきのぼず > きのぼずの見た目を変える

きのぼずの見た目を変える

■■目次■■
もともと用意されている変更●掲示板ごとにアイコン変更
安全な変更●kb.boardを書き換えよう ●新規書き込みボタン ●ジャンプ窓 ●検索窓1 ●検索窓2 ●簡単検索機能 ●さらに強力な検索
●UIフォルダのひ・み・つ ●.cssファイルの変更 ●アイコンの変更
危険な変更●必ずテスト用のディレクトリを作る ●html出力の法則 ●改造例 ●telnetでエラーを見つける

●もともと用意されている変更 R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

●掲示板ごとにアイコンを変える

 たまにはまる人がいるようですが、掲示板ごとのアイコン定義ファイル「掲示板名.idef」は「icons」ディレクトリにおきます。
 7.0以降は「kbdata/idef/」ディレクトリにおきます。パーミッションは644です。
 これ以外に設定は特に必要ありません。kb.phまたはkb.confで「$SYS_ICON = 1;」(記事アイコンを利用する)設定になっていれば、「掲示板名.idef」を探し、見つからなければ共通アイコン定義ファイル「all.idf」を使って表示されます。


●安全な見た目変更 R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

●きのぼずのインターフェースを変更することができます。

 変更するには、該当する掲示板の「kb.board」を書き換えます。この中身は、ひらったくいうとhtmlの<body>タグの中身です。通常、html文を書くには、<html><head><title><body>ときてやっと中身を書くことになりますが、kb.boardには<html><head><title><body>を省いた<body>タグより下の中身だけを書きます(<body>タグはいりません)。
 これがきのぼずで生成されるhtmlのアタマに挿入される仕組みです。
 きのぼずはカスタマイズを前提に作られているにもかかわらず、この部分を付属の「kb.board」のまま使っている人が非常に多いです。ぜひカスタマイズして自分らしいデザインの掲示板にしてください。
 ダウンロードページに、改造例があります。テキトーに直して使ってください。

 また、努力次第でここまで出来るという例を紹介しておきます。EbaTech:BBSすごいです。センスいい!細かく見るといろいろ勉強になります。アイコンを使ってますが、20×16に変えていたり(この方がカッコイイ)、ジャンプの仕方を選べるなど、芸が細かいです。見た目・機能を変えたい場合はぜひここを一度見てからにしてください。見事すぎます。

 R7.0以降は「管理機能」を使ってブラウザ上で書き換えることができます。ただし、XHTMLで書く必要があります。また、従来通り直接FTPしてもオッケーです。

 ※注意:ただし、kb.boardにHTMLタグでコマンドを書くと、R7.xでユーザー認証を「Cookie方式」ではなく「URL認証」にしている場合、新規書き込みなどでエラーがでます。この件についてはR7.3でタグを埋め込めるようになるそうですから、早々に解決しそうです。


kb.boardはぜひ書き換えましょう。R6.x/R7.x

 掲示板の目的は動く絵を楽しんだりすることではなく、情報を読み、気軽に発言して、お互いの情報を交換することにあります。そのためには「使いやすい」掲示板でなくてはなりません。
 「掲示板が使いやすい」とはどういうことかというと、一つは掲示板システムの持っている機能そのものが豊富なこと、もう一つはボタンやリンクなどの位置・大きさにかかってきます。
 きのぼずにはプルダウンメニューがあり、これで必要な機能はまかなえるようになっています。しかし、プルダウンメニューは1.機能を選び、2.ボタンを押すという2つの作業が必要になる点が欠点です(わずかなことに感じられるかもしれませんが、それを嫌う人もまたたくさんいます)。そこで、よく使われると思われるコマンドをkb.boardに書いておくとワンクリックで済み、ぐっと使いやすくなります。具体例は「ダウンロードページ」からダウンしてください。これをもとに使いやすいようにカスタマイズすると良いでしょう。
 kb.boardはHTMLを知っていれば自由に書き換えられる部分です。これを活用しない手はありません。

 以下にダウンロードページでダウンできるひながたの、ソースの一部を紹介します。以下のhtml文をコピーし、青い文字の部分を自分の掲示板にあわせて変更して使ってください。


 ●新規書き込みボタンをつける R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

<A href="kb.cgi?b=掲示板名&c=n">新規発言</A>


 ●ジャンプ窓をつける(発言番号にジャンプする窓) R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

<!-- ジャンプ窓だよ -->
<FORM action="kb.cgi" method="POST">
<INPUT type="hidden" name="b" value="
掲示板名">
<INPUT type="hidden" name="c" value="e">
<INPUT type="text" name="id" value="発言番号(半角)" size="20">
<INPUT type="submit" value="ジャンプ">
</FORM>


 ●検索窓をつける(ダイレクトに検索できる窓) R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

<!-- 検索窓だよ -->
<form action="kb.cgi" method="POST">
<input name="b" type="hidden" value="
掲示板名">
<input name="c" type="hidden" value="s">
<input name="searchsubject" type="hidden" value="on">
<input name="searchperson" type="hidden" value="on">
<input name="searcharticle" type="hidden" value="on">
<input name="searchicon" type="hidden" value="">
<input name="key" type="text" size="30" value="半角スペースでand検索">
<input type="submit" value="検索">
</form>

<!-- 検索窓ページに切り替える -->
<FONT color="#FF0000" size="-1">★
<A href="kb.cgi?b=
掲示板名&c=s">検索条件を詳しく</A>
</FONT>


 ●掲示板切り替え機能付き検索窓 R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

実は上の検索窓、一工夫して掲示板名を変更できるようにすると、複数の掲示板の内から検索する掲示板を選択可能となるのであった。こんな感じ。ピンクのところが上からの変更点。

<!-- 検索窓だよ -->
<form action="kb.cgi" method="POST">
検索掲示板:
<select name="b">
<option value="
掲示板1">掲示板1
<option value="
掲示板2">掲示板2
<option value="
掲示板3">掲示板3
</select>

<input name="c" type="hidden" value="s">
<input name="searchsubject" type="hidden" value="on">
<input name="searchperson" type="hidden" value="on">
<input name="searcharticle" type="hidden" value="on">
<input name="searchicon" type="hidden" value="">
<input name="key" type="text" size="30" value="半角スペースでand検索">
<input type="submit" value="検索">
</form>

<!-- 検索窓ページに切り替える -->
<FONT color="#FF0000" size="-1">★
<A href="kb.cgi?b=
掲示板名&c=s">検索条件を詳しく</A>
</FONT>

 掲示板変更できる検索窓は僕のテスト掲示板についています。見たい人はどうぞ。


 ●簡単検索機能 R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

さらに一工夫。上のフリーワード検索と同時使用が望ましいですが、あらかじめよく検索される単語をセットしておく「簡単検索機能」をつけてみます。悲しいかな、キーワード検索の場合、キーワードを一つしか設定しない「検索初心者」が全体の7割を占めるそうです(gooの資料より)。絞り込むための手助けをするのが簡単検索です。

<!-- 簡単検索機能 -->
<FORM action="kb.cgi" method="POST" enctype="x-www-form-urlencoded">
<SELECT name="b">
<OPTION value="
test" selected>掲示板1
<OPTION value="
test2">掲示板2
<OPTION value="
test3">掲示板3
</SELECT>
<INPUT name="c" type="hidden" value="s">
<INPUT name="searchsubject" type="hidden" value="on">
<INPUT name="searchperson" type="hidden" value="on">
<INPUT name="searcharticle" type="hidden" value="on">
<INPUT name="searchicon" type="hidden" value="">
<SELECT name="key">
<OPTION selected>
↓下から単語を選んで簡単検索
<OPTION>
●カメラメーカー名 <!-- ***この行はプルダウンメニューの見出しに使ってます*** -->
<OPTION value="
カメラ名1"> カメラ名1
<OPTION value="
カメラ名2"> カメラ名2
   

</SELECT>
<INPUT type="submit" value="検索">
</FORM>

 上の例はカメラの掲示板で、カメラ名をキーに探す場合の例です。青い文字の部分を変更して使ってください。OPTION valueに入るのはプルダウンに表示させる「検索させたい単語」です。好きなだけ行を増やして作りましょう。

 <OPTION>のみの行は、これを選んでもvalueがないために検索しません。これはたとえばキヤノンとかニコンとかカメラ名をメーカーべーつに並べて探しやすくするための「見出し行」なのです。必要なければ使わなくていいでしょう。


●さらに強力な検索 R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ
 さらに強力な検索が必要な場合は、高林 哲さんの開発した検索システム「NAMAZU」がおすすめです。他の検索システムも含めて知りたい場合はここがすごいです「日本語全文検索エンジンソフトウェアのリスト」。
 NAMAZUを導入したい人のために「マニュアルに書いてないNAMAZU」を作りましたので興味がある人はご覧ください。インストール方法ときのぼずとの連携について書かれています。

 実際に僕のコンパクトカメラ掲示板で使っています。


●UIフォルダのひ・み・つ R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

 実はUIフォルダの中には各機能ページのユーザーインターフェース部分を司るファイル群が入っています。このうちなひさんが書き換えるようにいっているのはこのファイル。

 ・BoardList.pl きのぼずが自動生成する掲示板の一覧を司ってます。

 R6ではUIの中はページレイアウトと、各画面で表示される説明が入っています。

 R7ではUIの中味はページのレイアウトを決めています。
 R7.0以降はユーザーインターフェースがXHTMLになると同時に、かなりカスタマイズがやりやすくなっています。UIの中で「<kb:〜>」できのぼずのルーチンを呼んでいます。ルーチンは名前で見当がつきますから、この表示順を変更すると、ページのレイアウトを変更できます。
 一方、.cssファイルは見た目のデザイン・スタイルを変更できます(cssファイルについては次項参照)。

 下にUIフォルダの中味を一覧しておきます。改造の目安にしてください。

ファイル名(R6)

内 容

ファイル名(R7)

内 容
AliasDel.pl ユーザエイリアスの削除 AdminConfig.xml 管理者パスワード未設定エラー表示画面
AliasMod.pl ユーザエイリアスの登録/変更 BoardConfig.xml 管理者画面:設定変更画面
AliasNew.pl エイリアスの登録と変更画面の表示 BoardEntry.xml 管理者画面:新しい掲示板の追加画面
AliasShow.pl ユーザエイリアス参照画面の表示 BoardList.xml 掲示板一覧表示画面(TOP)
ArriveMailEntry.pl 管理者・メイル自動配信先の指定 DeleteExec.xml メッセージ削除・削除後の報告画面
ArriveMailExec.pl 管理者・メイル自動配信先の設定後の画面 DeletePreview.xml メッセージ削除・確認画面
BoardList.pl 掲示板一覧の表示 Fatal.xml 汎用「エラー」画面
DeleteExec.pl 管理者・記事の削除 Help.xml ヘルプ画面
DeletePreview.pl 管理者・削除記事の確認 Login.xml ログイン画面
Entry.pl 記事書き込み画面 Post.pl コマンドラインから記事を投稿するためのスクリプト
Fatal.pl エラー表示画面 PostExec.xml 記事投稿・投稿後の画面
Post.pl コマンドラインから記事を投稿するためのスクリプト PostNewEntry.xml 記事投稿・新規記事書き込み画面
Preview.pl 記事書き込み・記事修正画面プレビュー画面 PostPreview.xml 記事投稿・書き込み内容の確認画面
SearchArticle.pl 記事検索画面 PostReplyEntry.xml 記事投稿・リプライ書き込み画面
ShowArticle.pl 単一記事の表示 SearchArticle.xml メッセージ検索画面
ShowIcon.pl アイコン一覧表示画面 ShowArticle.xml 記事内容表示画面
SortArticle.pl 記事一覧・日付順 ShowIcon.xml 使えるアイコン一覧画面
SortTitle.pl タイトル一覧・日付順 ShowThread.xml メッセージ表示画面
Thanks.pl 記事投稿・訂正後のありがとう画面 SortArticle.xml メッセージ一覧(書き込み順)
ThreadArticle.pl 記事一覧・スレッド別(スレッドの内容を丸ごと表示) SortTitle.xml タイトル一覧(書き込み順)
ThreadExt.pl 記事一覧・スレッド別 SupersedeEntry.xml メッセージの訂正画面
ThreadTitle.pl タイトル一覧・スレッド別 SupersedeExec.xml メッセージ訂正後の画面
SupersedePreview.xml メッセージ訂正の確認画面
ThreadArticle.xml メッセージ一覧(スレッド)
ThreadTitle.xml タイトル一覧(スレッド)
UserConfig.xml ユーザー情報画面
UserEntry.xml 新規ユーザー登録画面


●.cssファイルの変更 R7.x ▲このページのトップへ  ▲▲目次ページへ

 R7で.cssファイルが導入されました。実はこれを変えるだけでかなり見た目の変更ができます。スタイルシートのリファレンスを書くようなことは僕にはできないので(「とほほのWWW入門」が詳しいです)、簡単な改造例を示します。

○「kb/style/kbStyle.css」のキモ
 まずは改造位置から。下の位置(ファイルの一番最後)が記事のタイトル・コマンド・名前・日付・記事内容の表示スタイルを決めている部分です。

div.kbArticle {} ←タイトルから記事の終わりまでのひとかたまり
div.kbArticle p.command { text-align: right; } ←コマンド表示部分
div.kbArticle p.header {} ←ユーザー名・日付表示部分
div.kbArticle div.body {} ←記事内容表示部分

○フォントの指定
 例えば、次のような箇所がある。

h1, h2, h3, h4, h5, h6
{
text-align: center;
}

 記事のタイトルは<h2>で囲まれているので、下のようにh2だけフォントの指定をしてみよう。これで記事タイトルのスタイルを変更できる。この場合、上の部分↑からh2を外しておくこと。

h2
{
text-align: left; ←左寄せ
color:#000000; ←色は黒
background-color:#ffffcc; ←バックの色
font-size:12pt; ←文字の大きさ
font-weight:bold; ←ボールド指定
}

 ちっちやくなったかな? 同様に、コマンド部分は「div.kbArticle p.command { text-align: right; }」で、ユーザー名・日付は「div.kbArticle p.header {}」で、記事本文は「div.kbArticle div.body {}」で決まります。

○テーブルで囲む
 スタイルシートではテーブルとは言わないです。ボーダーといいます。記事ごと囲むなら次のようにします。

div.kbArticle { ←タイトルから記事の終わりまでのひとかたまり
background-color:#ffffcc; ←枠の中の色。文字のバック色と違っているとみっともない
margin:0; ←ボーダーの外側の余白。指定しないとボーダーの中味の幅となる
padding:0 2em 0 2em; ←ボーダー内の余白。数字は左から上・右・下・左の余白幅。1つしか指定しないと上下左右が一度に規定される
border-style:solid ; ←ボーダーのスタイル:none, dotted, dashed, solid, double, groove, ridge, inset, outsetなどがある
border-width:1px; ←ボーダーの幅。paddingのように上・右・下・左を別に指定も可能
}

 コマンド、名前・日付、記事などの部分ごとに枠をつけたければp.command、p.header、div.bodyに上のような指定をすればよい。

 僕が作った.cssファイルのサンプル。kb.phの「$H_LINE = '<p>------------------------------</p>';」を「$H_LINE = '';」にするとかっこよくなります。どの部分が画面のどこに当たるのか、一応コメントを入れてあります。でもネスケだとかっこわる(^^;
 お手本にさせてもらったのは「U-Z」さんのこのBBSこちらでkbStyle.cssの解析&解説も始めていらっしゃいますので、行ってみてください。
 記事ごとにボーダーで囲むようにしてみました。これだとIE/NNともまあまあ。こちらがサンプル2.2。こちらはkb.phの「$H_LINE = '<p>------------------------------</p>';」を「$H_LINE = '<hr />';」として使ってみてください。オリジナルと入れ替えるとこうなります(penguin-19 R7.2テスト掲示板)
 サンプル2の色を変えたのが2.1で、さらにタイトル一覧画面の行間調節を起こったものが2.2です。ただし、この行間調節、どうもNNにしか利かなくて、IEではダメなようです。


●アイコンの変更 R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

 http://www.jin.gr.jp/~nahi/kb/idef/でアイコンの定義ファイルを自動生成するサービスをしてくれています。



●kb.cgiをいじる見た目変更(危険) R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

●必ずテスト用のディレクトリを作る

 記事部分のコマンド(アイコン)表示部分の変更などは、きのぼず本体であるkb.cgiを書き換える必要があります。間違えるとやばいので結構危険です。必ずテスト用のkbディレクトリを作って(きのぼずバージョンアップ参照)、そのkb.cgiを書き換えてテストしましょう。
 その際、kb.cgiに注意。kb.cgiの必ず書き換えなくてはいけない箇所に「kbのディレクトリパスの指定」というのがあります。「$KBDIR_PATH = '/home/nahi/html/kb';」ってところです。最後の「kb」は当然ディレクトリが違っているので書き換える必要があります。この点に注意。

●html出力の法則 R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

 以下の解説はcgiもperlもなんにも知らない僕が、cgiファイルを観察して経験則的に見つけだした非常にあやふやかつ危険な情報ですので、くれぐれもオウンリスクでお願いします<(_ _)>

 kb.cgiは要求されたコマンドに従ってhtmlを生成・出力します。つまり出力されるhtmlタグ部分に着目してkb.cgiを丹念に見ていくとだいたい見当がつくようになります。
 cgiも知らない全然シロートの僕が何とか見当をつけた法則は以下の通りです。うまくいかなくても恨まないヨーに。必ずバックアップをとって、自分の責任で行ってください。しつこいですが。

 1.htmlタグ出力の最初は「$msg .= 」で始まる。

cgiが出力するタグを「$msg」という変数に代入しているのである。
 
 2.「$msg .= 」で始まる行には""付きとなしがある。
""がない行はcgiの変数だけでできている行です。これはタイトルや名前などを出力する行などです。なるべくさわらないようにしています。一方、""で囲まれた行はタグの出力行です。大胆に書き換えましょう。"のない行の前後にだいたいタグを書いた行があります。
 
 3.""のなかに"を書くとき
タグ行の中に""を書く必要がある場合、たとえば「$msg .= "<font size="+2">";」とすると二つ目の「"」を代入データの終わりと誤解してエラーになります。この場合は正規表現で「\"」と記述して「$msg .= "<font size=\"+2\">";」とします。(R7.0以降\"ではなくただの"で良くなりました。)
 
 4.行の終わりは「;」
perlでは行の終わりは必ず「;」がつきます。要チェックです。ただし、if文など一部つかない行があります。ま、そんなところはいじらないでしょうが。
 
 5.変更個所には目印を
自分で変更した行には目印をおきましょう。きのぼずがバージョンアップしたときに、新しいバージョンのkb.cgiを書き換えやすくなります。
 具体的には、僕の場合、変更した行の後ろに「# 変更行水沢」、追加行の後ろに「# 追加行水沢」といったように自分の名前を入れています。削除した場合は…実は削除はしません。その行のアタマに「# 」(#の後のスペースを忘れずに)をつけてコメント行に変え、その後にまたもや「削除行水沢」と入れます。

●改造例 R6.10 ▲このページのトップへ  ▲▲目次ページへ

 僕の場合、発言を表示させたときに出てくるコマンドラインをかなり変更しました。また、コマンドアイコンは使っていません。これは利用者の間から「アイコンは押してみないと機能がわからない」という声が挙がったためです。マニュアルを読まなくては使えない掲示板ではやはり「使いにくい」といえるでしょう。だから文字で表示させています。
 コマンドラインに対する変更は以下の通りです。
・コマンドをテーブルで囲み、目立たせる。
・日付順一覧に戻るリンク、検索リンク、特定のページに戻るリンクを追加。

 以下、R6.10の変更例を示しますが、くれぐれもオウンリスクでお願いします。

●タイトルをちょっと大きくする R6.10

--------------------- ここからオリジナル 790行付近 ---------------------

変更前 # 記事番号,題
変更前 $msg .= "<strong>$H_SUBJECT</strong>: <strong>$Id .</strong> ";
変更前 $msg .= &TagMsgImg( $Icon ) . $Subject;

--------------------- ここまでオリジナル ---------------------

--------------------- ここから変更後 790行付近 ---------------------

変更後 # 記事番号,題
変更後 $msg .= "<strong>$H_SUBJECT</strong>: <strong>$Id .</strong> ";
変更後 $msg .= &TagMsgImg( $Icon ) . "<strong>$Subject</strong> ";

--------------------- ここまで変更後 ---------------------
 赤い部分を例えば"<font size=\"+1\">$Subject</font> "などとしてもよい。


●コマンドをテーブルで囲む R6.10

 フォントの大きさ指定やテーブルのバックの色(#ffffcc)は適当に変更してください。

--------------------- ここからtableタグ部分オリジナル 697行付近 ---------------------

if ( $CommandFlag && $SYS_COMMAND )
{
# コマンド表示

--------------------- ここまでtableタグオリジナル ----------------------------

--------------------- ここからtableタグ変更後 ----------------------------
if ( $CommandFlag && $SYS_COMMAND )
{
# テーブルで囲む
$msg .= "<TABLE width=\"100%\" cellpadding=\"3\"><TR><TD BGCOLOR=\"#ffffcc\"><font size=\"-1\">\n";

# コマンド表示

--------------------- ここまでtableタグ変更後 ----------------------------

--------------------- ここから閉じタグオリジナル 787行付近 ----------------------------

$msg .= "</p>\n<p>\n";
}

# 記事番号,題

--------------------- ここまで閉じタグオリジナル ----------------------------

--------------------- ここから閉じタグ変更後 ----------------------------

$msg .= "</font></TD></TR></TABLE>\n"; # ←テーブル閉じタグ追加行
$msg .= "</p>\n<p>\n";
}

# 記事番号,題

--------------------- ここまで閉じタグ変更後 ----------------------------


●日付順一覧を追加 R6.10

 722行付近にあります。赤い行が追加行です。ピンクで示した$ICON_HLISTはオリジナルにはない変数です。150行付近にアイコンを定義するところがありますから、そこで$ICON_HLIST = "アイコンファイル名"を指定してください。もちろんアイコンファイルを作ることを忘れずに。アイコンを表示しないなら空でもいいでしょう。

--------------------- ここから ----------------------------

$msg .= &TagA( $BOARDLIST_URL, &TagComImg( $ICON_BLIST, $H_BACKBOARD,
$SYS_COMICON )) . "\n" if $SYS_F_B;

$msg .= $DlmtS .
&TagA( "$PROGRAM?b=$BOARD&c=v&num=$DEF_TITLE_NUM&old=$Old",
&TagComImg( $ICON_TLIST, $H_BACKTITLEREPLY, $SYS_COMICON )) . "\n";

# 以下、日付順一覧追加
$DlmtMIZ = " / ";
$msg .= $DlmtMIZ .
&TagA( "$PROGRAM?b=$BOARD&c=r&num=$DEF_TITLE_NUM&old=$Old",
&TagComImg(
$ICON_HLIST, $H_BACKTITLEDATE, $SYS_COMICON )) . "\n";

local( $TagTmp ) = &TagComImg( $ICON_PREV, $H_PREVARTICLE, $SYS_COMICON );

--------------------- ここまで ----------------------------


●検索、特定ページへジャンプを追加 R6.10

 767行付近にあります。赤い行が追加・修正行です。ピンクで示した変数はオリジナルにはない変数です。長くなりますが、わかりにくいのでオリジナル行も示します。

--------------------- ここからオリジナル ----------------------------

if ( $SYS_F_N )
{
$msg .= $DlmtS . &TagA( "$PROGRAM?b=$BOARD&c=n",
&TagComImg( $ICON_WRITENEW, $H_POSTNEWARTICLE, $SYS_COMICON ))
. "\n" .
$DlmtS . &TagA( "$PROGRAM?b=$BOARD&c=f&id=$Id",
&TagComImg( $ICON_FOLLOW, $H_REPLYTHISARTICLE, $SYS_COMICON ))
. "\n" .
$DlmtS . &TagA( "$PROGRAM?b=$BOARD&c=q&id=$Id",
&TagComImg( $ICON_QUOTE, $H_REPLYTHISARTICLEQUOTE,
$SYS_COMICON )) . "\n";
}

--------------------- ここまでオリジナル ----------------------------

 上のオリジナル部分を下の変更後にそっくり入れ替えます。
 kb.cgiの150行付近にアイコンを定義するところがありますから、そこで$ICON_FIND、$ICON_HOMEを指定してください。もちろんアイコンファイルを作ることを忘れずに。アイコンを表示しないなら空でもいいでしょう。
 $H_FIND_URL、$H_FIND、$H_HOME_URL、$H_HOMEはkb.phに指定行を付け加えてください。$H_FIND$H_HOMEは表示されるコマンド名です。$H_FIND = "検索"$H_HOME = "表示したいページ名"、などと書くといいでしょう。
 $H_FIND_URLは検索ページ表示のためのものです。$H_FIND_URL = "$PROGRAM?b=$BOARD&c=s"と書くときのぼずの検索ページにジャンプします。NAMAZUなどの検索ページにジャンプしたい場合はここを$H_FIND_URL = "ジャンプ先URL"と書きます。この機能は、kb.phでオリジナルにもある変数「$SYS_F_S = 1; # 記事の検索」を0にすると表示しません。
 $H_HOME_URLはジャンプ先のURLです。$H_HOME_URL = "表示したいページのURL"を書き加えるといいでしょう。
 なお、「掲示板一覧」をつぶしてもいいなら、わざわざこの機能を追加しなくてもkb.phかkb.confで「$H_BACKBOARD = "$H_BOARD一覧";」「$BOARDLIST_URL = 'kb10.shtml'; # kb/kb10.shtmlへ」あたりを書き換えるだけで同様のことができます。
 これらのkb.phの指定は、察しのいい方はすでにお気づきでしょうが、kb.confに書くことで掲示板ごとに変更できます。カメラ掲示板からはカメラのページへ、車の掲示板から車のページへジャンプしたいなどというときに便利です。

--------------------- ここから変更後 ----------------------------

if ( $SYS_F_N )
{
$msg .= $DlmtS . &TagA( "$PROGRAM?b=$BOARD&c=n",
&TagComImg( $ICON_WRITENEW, $H_POSTNEWARTICLE, $SYS_COMICON ))
# 以下、コメントを削除
# . "\n" .
# $DlmtS . &TagA( "$PROGRAM?b=$BOARD&c=f&id=$Id",
# &TagComImg( $ICON_FOLLOW, $H_REPLYTHISARTICLE, $SYS_COMICON ))
# 以下、新規書き込み ちょっと変更あり
. "\n" .
$DlmtS . &TagA( "$PROGRAM?b=$BOARD&c=q&id=$Id",
&TagComImg( $ICON_QUOTE, $H_REPLYTHISARTICLEQUOTE, $SYS_COMICON )). "\n";
}

# 以下、検索を追加。kb.phで$H_FIND_URLと$H_FINDを規定する。kb.phでオリジナル変数$SYS_F_Sを0にすると表示しない。
if ( $SYS_F_S )
{
$msg .=
$DlmtS . &TagA( "
$H_FIND_URL",
&TagComImg(
$ICON_FIND,$H_FIND, $SYS_COMICON )) . "\n";
}
# 以下、カメラページを追加。kb.phで$H_HOME_URLと$H_HOMEを規定する。
$msg .=
$DlmtS . &TagA( "
$H_HOME_URL",
&TagComImg(
$ICON_HOME,$H_HOME, $SYS_COMICON )) . "\n";
# ここまで追加行

--------------------- ここまで変更後 ----------------------------


●telnetでエラーを見つける R6.x/R7.x ▲このページのトップへ  ▲▲目次ページへ

 きのぼずマニュアルにあるとおり、telnetして「perl -c ./kb.cgi」とすると、単純なシンタックスエラーの場所を見つけてくれます。時には役に立つので試してみましょう。

▲このページのトップへ  ▲▲目次ページへ