fml 8 tutorial
Prev | Chapter 38. Internal Of CGI Process | Next

# CGI Implementation: config.cgi

@ISA of config.cgi is as follows:

    FML::CGI::Menu FML::Process::CGI::Kernel FML::Process::CGI::Param

Let see processing of config.cgi below.

config.cgi process object $curproc is a FML::Process::CGI::Kernel class.

    	new()
    	prepare()
    	verify_request()
    	run()
    	finish()

is sequentially called from FML::Process::CGI::Kernel class.

run() is important. run() executes the following methods sequentially.

        $curproc->html_start();          (FML::CGI::Menu)
        $curproc->_drive_cgi_by_table(); (FML::Process::CGI::Kernel)
        $curproc->html_end();            (FML::CGI::Menu)

_drive_cgi_by_table() prepares the screen. This function calls the main part of CGI.

$curproc->_drive_cgi_by_table() calles the following run_XXX() methods.

    run_cgi_main              (FML::CGI::Menu)

calls cgi_execute_command (FML::Process::CGI::Kernel) to execute FML::Command::Admin::$COMMAND via FML::Command class. This is the main part of command execution via CGI but the screen creation is a role of another part.

For example, consider subscribe an address via CGI. run_cgi_main() executes the real process of subscription. Instead run_cgi_menu() creates input menu. Former calls FML::Command::Admin::subscribe::process() method, latter calls FML::Command::Admin::subscribe::cgi_menu() method.

There are several other run_cgi_XXX() methods. They are optional for screen creation.

The following run_cgi_XXX() uses the default method.

    run_cgi_title             FML::Process::CGI::Kernel (show title)
    run_cgi_options           FML::Process::CGI::Kernel (show language selection)

.cgi specific methods are as follows:

    run_cgi_navigator         FML::CGI::Menu
    run_cgi_help              FML::CGI::Menu
    run_cgi_command_help      FML::CGI::Menu
    run_cgi_menu              FML::CGI::Menu

run_cgi_menu() executes FML::Command::Admin::COMMAND::cgi_menu() via cgi_execute_cgi_menu() method.

Prev | Home | Next
CGI Implementation: Inheritance Among CGI Classes | Up | Directory

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>.