<!--
   $FML: extension.sgml,v 1.3 2005/07/20 10:37:42 fukachan Exp $
   $jaFML: extension.sgml,v 1.10 2003/04/15 14:51:36 fukachan Exp $
-->


<sect1 id="fml.command.hack.commandmail">
	<title>
	Command Extension: Command Mail
	</title>


<warning>
<para>
To make a new local command usable for all ML's on this host, 
you need to put the module you wrote at
<screen>
/usr/local/lib/fml/site_local/
</screen>
.
If the command is allowed only for the specifiec ML
(e.g. elena ML), put it at the ML local library path
<screen>
/var/spool/ml/elena/local/lib/
</screen>
where $ml_home_dir = /var/spool/ml/elena.
</para>

</warning>


<sect2>
	<title> 
	Create A New User Command
	</title>

<para>
Consider to make a new local user command "uja".
Pick up a command at FML::Command::User, cut and paste it.
Please put it at
<screen>
/usr/local/lib/fml/site_local/FML/Command/User/uja.pm
</screen>
To permit the use of it for all ML's, 
edit site_default_config.cf to add it into $commands_for_user
to permit the user of "uja" command.
<screen>
user_command_mail_allowed_commands += uja
</screen>
It you allow the command only for the specific elena ML, 
edit /var/spool/ml/elena/config.cf in the same way.
<screen>
user_command_mail_allowed_commands += uja
</screen>
</para>

</sect2>


<sect2>
	<title> 
	Create A New Admin Command Such As "admin uja"
	</title>

<para>
In the same way described above, hack the module!:)
but the module path differs.
Put it at the FML::Command::Admin:: class. For example
<screen>
/usr/local/lib/fml/site_local/FML/Command/Admin/uja.pm
</screen>
Edit site_default_config.cf to add it into
$user_command_mail_allowed_commands to permit the use of "admin uja"
command.
<screen>
admin_command_mail_allowed_commands += uja
</screen>
</para>

</sect2>

</sect1>


<sect1 id="fml.command.hack.makefml">
	<title>
	CUI Command Extension: makefml/fml
	</title>

<warning>
<para>
To make a new local command usable for all ML's on this host, 
put the module you wrote at
<screen>
/usr/local/lib/fml/site_local/
</screen>

If you permit the command is used only for the specifiec ML
(e.g. elena ML), put it at the ML local library path
<screen>
/var/spool/ml/elena/local/lib/
</screen>
.
</para>

<para>
In this section, we consider the former case.
In both cases, the module codes are same.
</para>
</warning>

<para>
Create a module "uja" and put it at 
<screen>
/usr/local/lib/fml/site_local/FML/Command/Admin/uja.pm
</screen>
You do not need to edit .cf files. The existence of module file
enables the command automatically in the CUI case since the usability
of CUI implies administrator use.
</para>

</sect1>


<sect1 id="fml.command.hack.cgi">
	<title>
	GUI Command Extension: CGI
	</title>


<warning>
<para>
You need another work to create a menu screen.
</para>

<para>
To make a new local command usable for all ML's on this host, 
put the module you wrote at
<screen>
/usr/local/lib/fml/site_local/
</screen>

If you permit the command is used only for the specifiec ML
(e.g. elena ML), put it at the ML local library path
<screen>
/var/spool/ml/elena/local/lib/
</screen>
.
</para>

<para>
In this section, we consider the former case.
In both cases, the module codes are same.
</para>
</warning>


<para>
Craete a module "uja" and put it at
<screen>
/usr/local/lib/fml/site_local/FML/Command/Admin/uja.pm
</screen>
Edit site_default_config.cf to add it into $admin_cgi_allowed_commands
to permit the use of "uja" command.
<screen>
admin_cgi_allowed_commands += uja
</screen>
</para>


</sect1>
