JawaNoteを改造しよう

あなたは、 人目のCGIチャレンジャーです。

最終更新日:99年5月3日
修正:FalconTaka

改造後のサンプルを見る
以下の改造方法については、JawaNote作者のじゃわさんへは直接問い合わせないでください。
以下の対象スクリプトはJawaNote v1.4です。
  1. 背景を変更したい
    背景(BACKGROUND)には、デフォルトでダウンロードされる際に同梱されているjawaback.gifが指定されています。
    このGIFは、じゃわさんの自作の画像です。パレットは4色でサイズも270バイトと、とても小さい割に背景に使用するととってもきれいです。
    でも、ご自分のホームページにあったイメージに変更したいときは、まずこの背景を変更するだけで、イメージが変わります。
    ご自分で作成した画像GIFでもいいです。
    32行目:$body = '<BODY TEXT="black" BGCOLOR="#DCE0FF" BACKGROUND="jawaback.gif">';
    このjawaback.gifを使いたい画像ファイルの名前に変更する方法もありますが、使いたい画像ファイルの名前自体をjawaback.gifに変更しちゃう方法が、いいでしょう。
    あまりファイルサイズが大きいものは、表示に時間がかかる場合がありますので、注意しましょう。
    もしもjawanote.cgiと同じフォルダに画像が置けない(cgiファイルのみ特別なフォルダに置かなければならない)場合は、その画像ファイルのパスも含めて指定する必要があります。
    背景画像の色に合うように、文字色指定(TEXT)リンク色指定(LINK)リンク済みの色指定(VLINK)も変更および追加する必要もあるかもしれません。

    32行目:$body = '<BODY TEXT="#000000" LINK="#0000FF" VLINK="#FF0000" BGCOLOR="#DCE0FF" BACKGROUND="bg.gif">';
    画像を使わない方法もあります。
    32行目:$body = '<BODY TEXT="black" BGCOLOR="#DCE0FF">';
    とBACKGROUNDの指定をはずして、BGCOLORの指定を生かしましょう。

  2. 時刻表示を変更したい
    デフォルトでは、01/20 00:42のように表示されます。
    401行目:(探せないときは、unshiftをキーワードとしてエディタで検索してください。)
    unshift(@new,"$no><$title><$name><$url<>$email<>$mon/$day $hour:$min
    $min以下も含めて他の部分を変更しないように注意してください。 上記の太字の部分が変更ポイントです。下記のように変更します。

  3. 西暦表示を4ケタで表示するように変更したい
    西暦を表示するように変更した場合、99/05/03と表示されるようになりますが、2000年になると
    100/01/01 と表示されてしまいます。
    ■390行目
    $mon++;
    ■変更後
    $mon++;
    $year = $year + 1900;
    このようにすると1999/05/02とか2000/01/01と表示されるようになります。

  4. TOP、BACK、NEXT、Mail、Homeを画像表示したい
    まず、TOP、BACK、NEXT、Mail、Homeの表示に使用する画像ファイルを準備します。
    それぞれ、top.gif,back.gif,next.gif,mail.gif,home.gifというファイル名でjawanote.cgiと同じフォルダにあるとすると。
    ・TOPの画像表示
    ■138行目
    <DIV ALIGN="right">[<A HREF="$backurl">TOP</A>]</DIV> 
    ■変更後
    <DIV ALIGN="right"><A HREF="$backurl"><IMG SRC="./top.gif" BORDER=0></A></DIV>
    にします。

    ・BACK,NEXTの画像表示
    ■196行目あたり(BACKをキーワードとして検索して探してください)
    		print "[BACK]";
    	} else {
    		print "[<A HREF=\"./$cginame?page=$back_page&pass=$FORM{'pass'}\">BACK</A>]";
    	}
    	if ($next_page < 0) {
    		print "[NEXT]";
    	} else {
    		print "[<A HREF=\"./$cginame?page=$next_page&pass=$FORM{'pass'}\">NEXT</A>]";
    	}
    
    ■変更後
    		print "<IMG SRC=\"./back.gif\">";
    	} else {
    		print "<A HREF=\"./$cginame?page=$back_page&pass=$FORM{'pass'}\"><IMG SRC=\"./back.gif\" BORDER=0></A>";
    	}
    	if ($next_page < 0) {
    		print "<IMG SRC=\"./next.gif\">";
    	} else {
    		print "<A HREF=\"./$cginame?page=$next_page&pass=$FORM{'pass'}\"><IMG SRC=\"./next.gif\" BORDER=0></A>";
    	}
    
    にします。”(ダブルクォート)の前に¥を入れ忘れないようにして下さい。
    BACKとかNEXTの文字を<IMG SRC=\"./****.gif\"> に置換えるって事です。

    ・Mail、Homeの画像表示
    ■245行目あたり
    	if ($url) { print "<A HREF=\"http://$url\" TARGET=_top>Home</A>\n"; }
    	if ($email) { print "<A HREF=\"mailto:$email\">Mail</A>\n"; }
    ■変更方法
    これも上記と同じように変更します。書き直すところだけ抜き出すと。
    	Home → <IMG SRC=\"./home.gif\" BORDER=0>
    	Mail → <IMG SRC=\"./mail.gif\" BORDER=0>
    このようになります。
    
    画像ファイルの IMG タグには、 <IMG SRC=\"./*****.gif\" WIDTH=32 HEIGHT=32> などと
    縦横のサイズを指定する方がいいでしょう。
    

  5. BACK NEXTを画面の下にも表示させたい
    投稿記事の上にあるBACK NEXTを画面の下の方にも表示させます。
    ■sub put_listの下の方205行目あたり
    	print "<HR SIZE=1 WIDTH=80%>\n";
    	for ($i=$page;$i<$back_page;$i++) {
    		&put_format($logs[$i]);
    	}
    ※ここに以下の部分をコピーして挿入貼り付けします。
    }
    
    ■挿入する部分
    	print "<CENTER>\n";
    	local($page) = $FORM{'page'};
    	local($next_page,$back_page)  = ($page-$max,$page+$max);
    	if ($back_page > @logs-1) {
    		$back_page = @logs;
    		print "[BACK]";
    	} else {
    		print "[<A HREF=\"./jawanote.cgi?page=$back_page&pass=$FORM{'pass'}\">BACK</A>]";
    	}
    	if ($next_page < 0) {
    		print "[NEXT]";
    	} else {
    		print "[<A HREF=\"./jawanote.cgi?page=$next_page&pass=$FORM{'pass'}\">NEXT</A>]";
    	}
    	print "</CENTER><HR SIZE=1 WIDTH=80%>\n";
    
    ※「 } 」の位置に注意してください。
    

  6. なんか変わった変更したい
    CGIの特徴を活かして表示するごとに背景画像を異なるものにする改造をしてみましょう。
    背景画像に使うGIFファイルをいくつか用意しましょう。
    ここでは、6種類のGIFファイルを使った場合の改造方法を説明します。
    まず、32行目にある
    $body = '<BODY TEXT="black" BGCOLOR="#DCE0FF" BACKGROUND="jawaback.gif">';
    を削除します。(先頭に#をつけてコメントアウトしてもけっこうです。)
    そのすぐ後ろの行に以下の文を追加してください。

    @backimg = ('note1y.gif', 'note1p.gif', 'note1g.gif', 'back02r.gif', 'back02g.gif','back02b.gif');
    srand(time);
    $imgno=rand($#backimg+1);

    $body = "<BODY TEXT=\"BLACK\" BGCOLOR=\"#FFFFFF\" BACKGROUND=\"$backimg[$imgno]\">";

    @backimg の指定は、いくつでもけっこうです。「 '」と「 ,」で区切ってます。
    できましたか?これもダブルクォートの前に¥が必要です。

  7. タイトルを画像ファイル表示にしたい
    タイトルもご自分のページのイメージにあったものに変更してみましょう。
    ■139行目($note_titleをキーワードとしてエディタで探してみてください)
    <CENTER><FONT COLOR="$note_color" SIZE=7>
    <B>$note_title</B>
    </FONT></CENTER>
    ■変更後
    <CENTER><A HREF="./$cginame?func=password">
    <IMG SRC="./title.gif" width="300" hight="80" border=0></A>
    </CENTER>
    と変更します。

    管理者用ツールへのもこの画像をクリックすることで、リンクされています。
    ■314行目あたり <DIV ALIGN="right">[<A HREF="./$cginame?func=password">admin</A>]</DIV>
    この行を削除しておきます。

  8. タイトル画像もランダムに
    上記の改造が成功したらランダムに変えちゃうことだってできます。
    やはり各種設定のところに
    @titlegifs = ('title1.gif','title2.gif','title3.gif','title4.gif','title5.gif');
    srand(time); #この行は、背景画像をランダムにする時に入れてあれば不要です。
    $titleno= rand($#titlegifs + 1);
    $titlegif=$titlegifs[$titleno];
    を追加しておきます。そして上記の改造の代わりに
    <CENTER><A HREF="./$cginame?func=password">
    <IMG SRC="$titlegif" border=0></A>
    </CENTER>
    と変更します。

改造後のサンプルを見る

CGI Worldに戻る   CGIの改造のすすめに戻る    CGI関連リンクに戻る

作成:Falcon Taka