設定ファイルよりもHTMLの出力をわかりやすくしよう

フリーで公開するCGIの設定ファイルと表示の仕方について。
個人的には設定ファイルよりもHTML出力の仕方にこだわった方が良いと思う。


フリーソフトのCGIを眺めると、設定ファイルで以下のようにしていることがある。

#メールアドレスの入力欄を使用する(no:0,yes:1)
$input_mail = 1;

そして、表示部分では以下のようにしている。

print "件名:";
print "<input type='text' length='30' name='title' />";

if($input_mail){
    print "メールアドレス:";
    print "<input type='text' length='30' name='mail' />";
}

複数の表示に関してこのような設定を施すと、if文が複数連なったり階層化してしまうため、どこを直せば見た目が変わるのかがわかりにくくなってしまう。例えば色を変えるだけであれば以下のように変数をセットするだけでいいので、ロジックは絡んではこない。

#PHP
<p style='color:<?php print $color;?>;'>メールアドレス</p>

#Perl
print "<p style='color:$color;'>メールアドレス</p>";

表示するかしないかといったレイアウトに関わる部分もこのように設定できることが望ましい。こういった場合にはスタイルシートのdisplayやvisibilityの値をプログラムの変数で設定できるようにしておくと良いだろう。もちろんこれで回避できるのは単純な表示・非表示でありほかの場合には対応できないが、スタイルシートを活用することでレイアウトに関するif文をいくらか減らすことができるだろう。


自分で使うスクリプトの場合にはレイアウトを変えたい場合はそのままスクリプトの中身を自分好みに変えることができるので、設定ファイルの柔軟性にこだわることはないだろう。しかし、フリーソフトとして公開されている多くのものは設定ファイルにいろいろな項目があらかじめ用意されており、それを少しいじれば使えるよというスタンスが感じられる。


上記のようなスタイルシートを使った方法はある程度の範囲では有用であるが、配置する場所をいじろうと思ったら設定ファイルではどうにもならない部分がすぐに出てくるし、柔軟に対応できる設定ファイルを作るのに必要な労力は計り知れない。そう考えると設定ファイルにこだわるよりもHTMLの表示部分をすっきり書いてくれたほうが親切だし、どちらも幸せになれる近道な気がする。


しかし、HTMLすらわからない人も対象にしていると考えられるので、「HTML出力を手軽に自由に変えられるからいいでしょ」と言うのは難しい。そういう人にとっては設定ファイルというのは非常にありがたい存在である。結局、設定ファイルとわかりやすい出力の両方あった方が良いのは間違いないが、労力の配分についてはよく考えるべきである。


以上、Webスクリプトの公開とかしていない人の戯言でした。
打鍵トレーナーのPHP化とか・・・たぶんやらないですね。