fml8 チュートリアル (バージョン 7.99.1-20180910)
Prev | Chapter 42. CGI プロセスの内部構造 | Next

# CGI の画面の作りとメソッド

fml8 CGI スクリプトでは典型的な画面が次のように分割されると考えています。

              ヘッダ
    ◎        メニュー    ◎
    バー１    メイン      バー２
    ◎        メニュー    ◎
              フッタ

なお、バー１と２の部分は navigation などと呼ばれます。

ヘッダ部分(HTTP ヘッダではなく、HTML の DOCTYPE から BODY あたり)やフッ タの部分は html_start() および html_end() で HTML コードを生成します。

一方、HTML BODY の中身は真中の３ｘ３のテーブル状の部分で、run_cgi() から呼 ばれるメソッドが生成しています。

run_cgi() の中身をもっと細かくすることと、画面上のどの部分をどのメソッ ドが記述するのかを指定できるアクセスメソッドが必要です。また、これにあ わせて BODY の中身もより細かく次のような３x３の精度で表現されています。

    nw   north  ne
    west center east
    sw   south  se

## 現在の CGI の画面の構造

以下のような３x３のテーブル構造をとっており、 それぞれ次のメソッドが表示を担当しています。

    run_cgi_main
    			run_cgi_title
    run_cgi_navigator	run_cgi_menu	run_cgi_command_help
    run_cgi_options

HTML のレベルでは、TABLE 命令を使って疑似的なナビゲーションバーを作っ ています。そして、ハッシュテーブルで定義されている関数を決められた順番 で実行し、テーブルを作成しています。

run_cgi_main() は何らかの処理をしない限り何も表示しません。大抵は「な し」か「OK …」程度です。エラーメッセージを表示することもあります。ま た、この関数はＭＬ一覧などをきちんと最新の情報にするために、画面を描く 前に実行する必要があります。

ちなみに、run_cgi_main() は個々の関数を呼び出すためのトップレベルのア ダプター層で、FML::CGI::Menu::Admin に定義されています。個々のコマンド は、makefml の時と同様に、この関数経由で実行されます。

ただし、ログやメンバーリスト一覧のように run_cgi_menu() から結果の表示 をしているものもあります。これは表示のオプションの指定をさせるために、 run_cgi_main() ではなく run_cgi_menu() 経由で表示しているともいえるの ですが、なにしろコマンドの結果の表示が長いので、今のように menu() 経由 のほうがよいと思います。

Prev | Home | Next
CGI プロセスの内部構造 | Up | 画面とトランポリン機構

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
fml 4.0 project homepage is www.fml.org/software/fml4/.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.

For questions about FML, e-mail <fml-bugs@fml.org>.