サイトマップ支援 -- map.cgi --

アンチフレーム派がアレこれページを構成する際に
是非とも設置したいものにサイトマップがあります..が
単にサイト全体のページをリストしただけだと少々味気ないです

こんな感じで現在の居場所も表示できると親切と思うのですがどうでしょう?
そんな訳でせっかくだからこの居場所の表示を CGI に任せてみる事にします

比較的お手軽に作業できるようコンテンツ部とプログラムを分離しました
今回は map.cgimap.html の 2 つのファイルで構成してあります


〜〜〜 map.cgi 〜〜〜

#!/usr/bin/perl
print "Content-type: text/html\n\n";

$line = $ENV{'QUERY_STRING'};

$str1 = '<B><FONT COLOR="#ff0000">';
$str2 = '</FONT></B>';
$str3 = ' ← 現在の居場所';

open(TXT,"map.html");
while (<TXT>) {
    s/<!--$line-->/$str1/;    # マッチした 1 個目のコメントを置換
    s/<!--$line-->/$str2/;    # マッチした 2 個目のコメントを置換
    s/<!--$line-->/$str3/;    # マッチした 3 個目のコメントを置換
    print;
}
close(TXT);


〜〜〜 map.html 〜〜〜

<HTML>
<HEAD>
<TITLE>サイトマップ</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF">

<H3>ほにゃらりらのサイトマップ</H3>

<!--main--> メインページ <!--main--><!--main--><BR>
<!--soft--> フリーソフト <!--soft--><!--soft--><BR>
<!--prof--> 事故紹介 (^^; <!--prof--><!--prof--><BR>
<!--link--> リンクしたりとか <!--link--><!--link--><BR>
<BR>

</BODY>
</HTML>

たくさん埋め込まれたコメントタグが要点です

この例では強調文字色変更の「開始」・「終了」
あと「 ← 現在の居場所」の 3 個所を置換します

個々のページからは map.cgi?soft のように呼び出します
事故紹介ページからは map.cgi?prof として
リンクからは map.cgi?link と云った感じです


ダウンロード → [map.lzh]

〜〜〜 map.cgi?soft 実行例 〜〜〜

<HTML>
<HEAD>
<TITLE>サイトマップ</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF">

<H3>ほにゃらりらのサイトマップ</H3>

<!--main--> メインページ <!--main--><!--main--><BR>
<B><FONT COLOR="#ff0000"> フリーソフト </FONT></B> ← 現在の居場所<BR>
<!--prof--> 事故紹介 (^^; <!--prof--><!--prof--><BR>
<!--link--> リンクしたりとか <!--link--><!--link--><BR>
<BR>

</BODY>
</HTML>

実行後のソースを見てみると赤字のように置換が行われたのが判ります

今回は派手な演出を狙ってくどいくらい装飾しましたが
実際にはもう少しシンプルにしても良いかも知れません



一度作ってしまえば後にページが増えたりしても
該当ファイルと map.html だけイジれば良いので
メンテナンスはかなり容易になります

この手法はプログラムとコンテンツを
別々に作成してる場合などにも応用できるし
SSI の使えないシステムで同様の事を実現したりとか
工夫次第でアレこれ応用できると思います


[Back] [Home] [Map]