改造/common.pl
MIMEタイプ取得をdownload.cgiからcommon.plに移す
ファイルのMIMEタイプ取得を必要とするのはdownload.cgiだけに限らず、汎用性高いのでcommon.plのUtilに移し各種プラグインやCGIからも利用出来るようにする。
詳しくは改造/download.cgiを参照。
UserAgentチェックの機種、フラグを増やす
「common.pl」にあるユーティリティ関数「handyphone」によって利用者環境(UserAgent)をチェックし(主に携帯かどうか)、それぞれの環境にあったものを提供出来るようになっている (しかしデフォルトのFSWikiLiteでは関数は一応用意されているだけに留まり、実際には全く利用されていない)。
書かれたプログラムは古くてSoftbankすら含まれてなく、またiPhone等のスマートフォンも出てきてる現状、改造する事で対応を増やす。
改造方法
- 「common.pl」のスクリプトを改造する
- 下のような行があるはず
#=============================================================================== # 携帯電話かどうかチェックします。 #=============================================================================== sub handyphone { 〜中略〜 if($ua=~/^DoCoMo\// || $ua=~ /^J-PHONE\// || $ua=~ /UP\.Browser/){ return 1; } else { return 0; } }
- 「if($ua=~」〜「return 0;」を下のように書き換える
- 携帯のフラグは1、iPhoneは2、それ以外は0に。Willcomはとりあえず含まず
if($ua=~/^DoCoMo\// || $ua=~ /^J-PHONE\// || $ua=~ /^Vodafone\// || $ua=~ /^MOT\// || $ua=~ /^SoftBank\// || $ua=~ /UP\.Browser/){ return 1; } elsif($ua=~ /iPhone/){ #iPhone return 2; } else { return 0;
ヘッダを改造
FSWikiLiteのWikiページヘッダは「common.pl」の「print_header」で生成されている。「FrontPage」「新規」「編集」等の上部メニューもここで生成されている。
ヘッダで指定出来る各種設定を追加したり、メニューが視覚的に分かりやすくなるようアイコンを付けたり、機種を判別してヘッダを変えたり等といった改造を行うとより使いやすくなる。
※IOは自分が利用している改造の方ではRSSや名前順一覧といったものもメニューに追加していて、そこらへんもいずれ説明追加予定で、その際にはここも修正される。
改造方法
- 「common.pl」のスクリプトを改造する
- 下のような行があるはずで、その中を変える
#------------------------------------------------------------------------------- # ヘッダを表示 #------------------------------------------------------------------------------- sub print_header { my $title = shift; my $show = shift; 〜中略〜 print "</div>\n"; print "<h1>".&Util::escapeHTML($title)."</h1>\n"; } #------------------------------------------------------------------------------- # フッタを表示
上部メニューにアイコンを追加
- 手順としては「アイコン素材を準備しアップロード、素材を置く位置をsetup.plで指定」「common.plを修正」となる
- まずはメニューアイコン素材を準備。自分で作ってもいいし、KGさん等がFSWiki用に用意したものを使ってもよい。BugTrack-plugin/233 Wikiメニューにアイコン画像を表示するプラグイン
- ここではKGさん作成の「EclipseStyle」アイコンを元に説明する
- 素材を入れるフォルダを作成。ここでは「sozai」という名前とする
- 「sozai」フォルダに使用するアイコンを入れる。KGさん作成の「EclipseStyle」アイコンでは「edit.gif」「help.gif」「new.gif」「pagelist.gif」「search.gif」「top.gif」を使用。newやeditという名は他で使う可能性があり、ここでは名前をより分かりやすく「pageedit.gif」「pagenew.gif」「pagetop.gif」と変えて入れる
- アイコンを入れた「sozai」フォルダをサーバにアップロードする。例えば@nifty @homepage等ではCGIディレクトリに入れても画像ファイルは使えず、HOMEPAGEディレクトリに入れなければならない。しかしURLで指定するように改造するので、その場合でも利用可能
- 「setup.pl」の初期設定に以下の変数を追加設定する。$SOZAI_URLの〜〜〜の部分は自分の置くアドレスに変えること。今回$SOZAI_DIRは使わないが、将来に備えて一応記しておく
$SOZAI_DIR = './sozai'; #追加分 FSWiki CGIが使う画像等素材用のディレクトリ $SOZAI_URL = 'http://〜〜〜/sozai'; #追加分 FSWiki CGIが使う画像等素材用のURL
- 「common.pl」「ヘッダを表示」の以下の部分
print " <a href=\"$MAIN_SCRIPT?p=FrontPage\">FrontPage</a>\n"; print " <a href=\"$EDIT_SCRIPT?a=new\">新規</a>\n"; if($show==1){ print " <a href=\"$EDIT_SCRIPT?a=edit&p=".&Util::url_encode($in{"p"})."\">編集</a>\n"; } print " <a href=\"$MAIN_SCRIPT?a=search\">検索</a>\n"; print " <a href=\"$MAIN_SCRIPT?a=list\">一覧</a>\n"; print " <a href=\"$MAIN_SCRIPT?p=Help\">ヘルプ</a>\n";
- を下のように書き換える
- 修正ついでにFSWiki準拠で「FrontPage」から「トップ」という表記にし、「検索」「一覧」から「一覧」「検索」の順に変更
- 更についでに検索エンジンが編集ページ等を検索先に追加しないよう(検索から来た人が直接編集ページへ入ってしまうのは都合が悪いので)、edit.cgiへのメニューリンク等に「rel="nofollow"」を追加
print " <a href=\"$MAIN_SCRIPT?p=FrontPage\"><img src=\"$SOZAI_URL/pagetop.gif\" border=\"0\" align=\"absmiddle\" alt=\"トップ\">トップ</a>\n"; print " <a href=\"$EDIT_SCRIPT?a=new\" rel=\"nofollow\"><img src=\"$SOZAI_URL/pagenew.gif\" border=0 align=absmiddle alt=\"新規\">新規</a>\n"; if($show==1){ print " <a href=\"$EDIT_SCRIPT?a=edit&p=".&Util::url_encode($in{"p"})."\" rel=\"nofollow\"><img src=\"$SOZAI_URL/pageedit.gif\" border=0 align=absmiddle alt=\"編集\">編集</a>\n"; } print " <a href=\"$MAIN_SCRIPT?a=list\" rel=\"nofollow\"><img src=\"$SOZAI_URL/pagelist.gif\" border=0 align=absmiddle alt=\"一覧\">一覧</a>\n"; print " <a href=\"$MAIN_SCRIPT?a=search\" rel=\"nofollow\"><img src=\"$SOZAI_URL/search.gif\" border=0 align=absmiddle alt=\"検索\">検索</a>\n"; print " <a href=\"$MAIN_SCRIPT?p=Help\"><img src=\"$SOZAI_URL/help.gif\" border=0 align=absmiddle alt=\"ヘルプ\">ヘルプ</a>\n";