| CGI::Formalware(3pm) | User Contributed Perl Documentation | CGI::Formalware(3pm) |
"CGI::Formalware" - Convert an XML file into a suite of CGI forms.
In your browser, type: localhost/cgi-bin/x.pl
where x.pl contains nothing more than:
#!perl -w
use strict;
use lib 'C:/Perl';
use lib 'C:/Perl/Scripts/General'; # Ie $PERL5LIB.
use CGI::Formalware;
my($form) = CGI::Formalware -> new({form2file => 1, debug => 1});
$form -> process();
exit(0);
Upon starting, "CGI::Formalware" asks for the name of your XML file, which is assumed to be in cgi-bin/.
To provide a type of repository for frequently used scripts, which can then be executed locally or remotely (via Net::Telnet), by just entering a password (for remote scripts), and clicking.
You install "CGI::Formalware", as you would install any perl module library, by running these commands:
perl Makefile.PL
make
make test
make install
If you want to install a private copy of "CGI::Formalware" in your home directory, then you should try to produce the initial Makefile with something like this command:
perl Makefile.PL LIB=~/perl
or
perl Makefile.PL LIB=C:/Perl/Site/Lib
If, like me, you don't have permission to write man pages into unix system directories, use:
make pure_install
instead of make install. This option is secreted in the middle of p 414 of the second edition of the dromedary book.
Webmasters.
None. Even worse, "CGI::Formalware" is designed to circumvent a web server's concept of what Apache calls DocumentRoot.
new takes either no parameters, or an anonymous hash. See the example above. Keys and values recognized are:
<fileField
name = 'fileName'
prompt = 'Filename: '
size = '60'
override = '0'
/>
<horizontalRule />
<paragraph />
<paragraph text = 'Output a comment' />
<radioGroup
name = 'serverName'
prompt = 'Server name: '
value = 'Example|Simple|Test'
columns = '1' # Optional. Defaults to '1'. Use a string, not a digit
/>
<textField
name = 'username'
prompt = 'Username: '
value = ''
size = '15'
override = '0'
/>
Over time, more functions will be added.
Remote scripts are passed to Net::Telnet, on the assumption that you know what you are doing. Your form must contain textFields called 'host', 'username' and 'password'
Forms are linked with 'Previous form', 'Next form' buttons.
Any previously-entered textFields, except those whose name is 'password', are remembered when you return to a form. This is very convenient.
The password values are zapped by CGI.pm, not by me. This is a security feature. It means you can walk away from your system and not have someone gain automatic access to a remote system.
Each form entity may have a 'css' attribute, giving the name of the CSS file for that form. These attribute values are like '/CGI-Formalware.css', which, under Apache, means this value is prefixed with DocumentRoot. That is, the path to the CSS is a URI, and will not be seen if in cgi-bin/.
The compulsory elements are: H1, H2 and P.TOC.
Herewith a sample:
H1
{
font-size: 20pt;
alignment: center;
color: teal;
}
H2
{
font-size: 16pt;
font-style: italic;
color: maroon;
}
P.TOC
{
font-size: 12pt;
color: white;
background-color: blue;
}
None.
These checks are performed:
TBA.
Herewith a sample:
<forms
tocEntry = 'Forms'
tocVisible = 'True'
>
<form
heading = 'Unix Command Menu'
tocEntry = 'Unix menu'
css = '/CGI-Formalware.css'
formFileName = '1.html'
>
<horizontalRule />
<radioGroup
name = 'host'
prompt = 'Host: '
value = 'bigBox|littleBox'
/>
<paragraph />
<textField
name = 'username'
prompt = 'Username: '
value = ''
size = '15'
override = '0'
/>
<textField
name = 'password'
prompt = ' Password: '
value = ''
size = '15'
override = '0'
/>
<horizontalRule />
<scripts
heading = 'Unix Scripts'
numberScripts = 'Yes'
>
<script
heading = 'Files in home directory'
type = 'remote'
line1 = 'dir'
/>
<script
heading = 'Tags in repository'
type = 'remote'
line1 = 'cd $M'
line2 = 'getTags'
/>
</scripts>
</form>
<form
heading = 'DOS Command Menu'
tocEntry = 'DOS menu'
>
<horizontalRule />
<radioGroup
name = 'host'
prompt = 'Host: '
value = 'bigBox|littleBox'
/>
<paragraph text = 'Enter a username and a password.' />
<textField
name = 'username'
prompt = 'Username: '
value = ''
size = '15'
override = '0'
/>
<textField
name = 'password'
prompt = ' Password: '
value = ''
size = '15'
override = '0'
/>
<horizontalRule />
<fileField
name = 'fileName'
prompt = 'Filename: '
size = '60'
override = '0'
/>
<horizontalRule />
<scripts
heading = 'PC Scripts'
>
<script
heading = 'Files in root directory'
type = 'local'
line1 = 'cd \'
line2 = 'dir'
/>
<script
heading = 'FTP something somewhere'
type = 'local'
line1 = 'ftp -n -v'
/>
<script
heading = 'Untar a file'
type = 'local'
line1 = 'cd \'
line2 = 'tar mxvzf %fileName%'
/>
</scripts>
</form>
</forms>
Nope, I don't recognize them. Maybe one day...
"CGI::Formalware" was written by Ron Savage <ron@savage.net.au> in 1999.
Available from http://savage.net.au/Perl.html.
Australian copyright (c) 1999 Ron Savage.
All Programs of mine are 'OSI Certified Open Source Software';
you can redistribute them and/or modify them under the terms of
The Artistic License, a copy of which is available at:
http://www.opensource.org/licenses/index.html
| 2022-10-14 | perl v5.36.0 |