minibbsでアイコンを使用可能にする
[2009年11月26日(木)]
以前サポート掲示板にて、アイコンの使用可能かどうかの質問があったときにテスト用に作成したものです。
このまま消してしまうのも惜しいので、こちらにアップしておきます。
アイコンの表示場所は名前の横になりますので、ミニアイコンを使用するか、掲示板を通常画面で使用出来るようにサイズを調整する等の工夫をして頂く必要があります。
以上のことを踏まえてご使用下さい。以下をクリックするとスクリプトが表示されます。
minibbs.txt拡張子を「.cgi」に変更してご使用下さい。記録ファイルと日本語コード変換ライブラリは各自でご用意頂くか、通常版に入っているものをご使用下さい。
なお、
通常版とアイコン使用可能版の記録ファイルに互換性はありません。ご注意下さい。
入力欄のデザインを変更したい
[2009年11月23日(月)]
ここではスタイルシートの基本については書きませんので、もっと詳しく知りたい方は検索等で調べてみて下さい。
入力欄はスタイルシートで指定しています。だいたい以下のような指定の仕方をしています。
.bs{border-left:1px solid #999999;
border-right:1px solid #999999;
border-top:1px solid #999999;
border-bottom:1px solid #999999;
background-color : #ffffff;
font-size : 10pt; color : #666666 ;}
四方向の色等を別々に指定することにより、replybbs等の入力欄にあるような「下線だけ表示する」という事が出来ます。
具体的に説明しますと、
border-left(方向):1px(線の太さ) solid(線の形状) #999999(色);
このように指定しています。線の形状として「dashed(点線)」等があります。これを参考にして色等を変えてみて下さい。
また、四方向を一度に指定する場合は、
border:1px solid #999999 ;
このように記述します。
記事を逆順に表示したい
[2009年11月23日(月)]
基本的に記事は新しいものから表示されます。それを逆順に表示したい場合は、
if ($filelock == 1){ &lock;}
&input;
if ($filelock == 1){ &unlock;}
のすぐ下に、
@data = reverse(@data);
この文を付け足します。
reverse関数を使用すると逆順に表示されますが、記録ファイルの中身は変わりません。そのため、必要がなくなった場合はこの一文を削除すれば元に戻ります。
なお、スクリプトによっては、
my $top = shift(@data);
この文のあとにreverse関数を付け足さないと表示が可笑しくなるものもあります。
未記入によるエラーを回避したい
[2009年11月23日(月)]
掲示板等、名前やコメントがない場合は自動的にエラーになるスクリプトがいくつかあります。これを回避したい場合は以下を参考にして下さい。
まず、チェックをしているソースを探します。だいたい「sub check」か「sub regist」にあります。
ここでは、例題として「名前の記入をチェックしているソース」をあげてみましょう。
if ($in{'name'} eq "") { &error("名前が入力されていません"); }
Perlの文法が判らなくても、エラー文を見て頂ければ何をチェックしているか判ると思います。この1行を削除すれば、チェックはされなくなります。
メール欄やコメント欄等も上記と同様の方法で削除することが出来ます。この場合も上記と同様にエラー文で判断をして下さい。
改造に関しての注意事項
[2009年11月23日(月)]
当サイトのスクリプトは個人で使用する場合は、自由に改造をして頂いて構いません。ただし、再配布を希望する場合は、管理人への連絡が必須となります。
複数の箇所を改造する場合は、出来るだけバックアップを取って下さい。
改造によりエラーが発生した場合は、以下の方法でデバッグして下さい。
Perl Checker
「KENT WEB」さんで配布されているスクリプトです。使い方や設置がとても簡単でおすすめです。
これは文法だけでなく、パスやパーミッション値のチェックも同時に行います。問題がなければ、「syntax OK」と表示されます。詳しい説明は、スクリプト配布のページを参照して下さい。KCatch.pm
Perl CGI で発生する Internal Server Error を補足して、 エラー内容を HTML としてブラウザ画面に表示してくれるモジュールです。
行番号等が表示されますので、間違いが見つけやすくなります。
使い方は、配布されているサイトをご覧下さい。詳しく説明がされております。
オフィシャルサイト「http://www.kawa.net/works/perl/catch/news.html」でダウンロードして下さい。CGIを起動する時に全文をチェックする。
「とほほのWWW入門」さんのサイトでデバッグの方法が幾つか紹介されていますが、その中でも私がよく使っているのが以下のものです。
まず、スクリプトの2行目(1行目はperlパスです)に、以下の1行を追加します。
eval {
そして最後の行に、
};
if ($@) {
print "Content-type: text/html\n\n";
print "ERROR\n";
print "ERROR = $@\n";
}
を追加します。
eval{...}は、かっこ内の文字列をPerlの構文として実行し、その結果を返します。致命的なエラーが発生してもスクリプトを中断するのではなく、「$@」という特殊変数にエラーメッセージを送る処理を行います。
特に問題がなければ、そのままCGIが実行されますので、大規模な改造する前に、このソースを追加しておくと良いでしょう。
行番号や、間違っている理由が表示されますので、エラー箇所が発見しやすくなります。Mac OS Xでデバッグする。
この方法は、CGIを設置するサーバがUNIX系で、かつTELNETが使えれば応用出来ますが、ある程度の知識が必要です。
「CGI-Executables(HD→Library→WebServer→CGI-Executables)」というフォルダに、CGIスクリプトを移動させておきます。
次に「ターミナル」を起動して、
perl -c /Library/WebServer/CGI-Executables/xxx.cgi
と打ち込み、enterを押します。-cオプションでPerlの構文チェックを行います。「syntax OK」という文字が出れば大丈夫です。
また、-wcオプションを使うと、警告文も一緒に出ます。未使用の変数があったりすると警告文が出たりしますが、実質的なエラーにはなりません。