All system administrator options in Foxfire! are controlled by the existence of FFADMIN.EXE. If that file isn’t present, many of the options (including Setup Wizard, Upgrade and System Admin) will not appear on the tools menu. However, if you want to truly customize the environment, you can take advantage of two pieces to fully configure the environment: the plugins.config and the ffutils.ini file.

Here’s how to do it.

When customers ask about how to set up Foxfire! for use within their application, they often ask about how to hide certain options such as the Setup Wizard or some of the system administration options. The fastest and easiest way to remove the system administration options is to delete the FFADMIN.EXE file from the Foxfire! directory. This will remove the Setup, Upgrade and all of the System admin options from the Tools menu. But this may not be quite what you want, especially if you have power users at your client sites that should be allowed to modify certain options. So let’s run through your options.

1. Set the Report Set permissions as needed. There is an option to show the Setup Wizard. In earlier versions of the Admin tools, this option was buried but in the most recent, there is an option to hide the Setup Wizard option (behind the scenes, this is managed by the pf_setup field in the FFPREFER table).

2. Customize what shows in the System Admin page
The FFUTILS.INI file is an easy way to customize what appears in the System Administrator dialog. You can add new items or replace the entire dialog.

Here is the sample content of the FFUTILS.INI file:
User Profile Manager~User Profile Manager~DO ffadmin.exe WITH ‘USER PROFILE MANAGER’~Users,Manage users
Data Item Group Editor~Data Item Group Editor~DO ffadmin.exe WITH “DATA ITEM GROUP EDITOR”~Data Dictionary,Edit data items

The ini file is configured as
Name of item~Name of Internal~function to run~Group~Message text

If the first line appears as OVERRIDE~OVERRIDE~OVERRIDE, then all of the standard options in the System Administrator menu are hidden. Otherwise, options will be added to the existing system admin menus. In addition, the Foxfire! head background is hidden in the System Admin screen.

Here is an FFUTILS.INI that recreates the basic System Admin options dialog:
Setup Wizard~Setup Wizard~DO ffadmin.exe WITH ‘SETUP’~Setup~Walks through a setup process for reporting from your database
Report Set Editor~Configure report sets to access data~DO ffadmin.exe WITH ‘PREFERENCE’~Setup~Configure report sets to access data
Data Item Editor~Data Item Editor~DO utlmgr_run WITH ‘DATA ITEM EDITOR’~Data Dictionary~Associates a field, user-defined function, or expression with a plain-language name
Import or Create New Data Items~Import or Create New Data Items~DO utlmgr_run WITH ‘IMPORT’~Data Dictionary~Create data item definitions from the database structure or schema
Data Item Group Editor~Data Item Group Editor~DO utlmgr_run WITH ‘DATA ITEM GROUP EDITOR’~Data Dictionary~Manage the data dictionary and data item groups
Relationship Editor~Relationship Editor~DO utlmgr_run WITH ‘LOAD JOINS’~Data Dictionary~Define and maintains relationships between tables
User Profile Manager~Setup and configure users~DO ffadmin.exe WITH ‘USER MANAGER’~Users~Setup and configure users
Refresh Sample Values~Refresh Sample Values~DO utlmgr_run WITH ‘REFRESH’~Data Dictionary~Update the sample values shown in the Design Preview window
View Query Log~Review previously run queries~DO ffadmin.exe WITH ‘VIEW QUERY LOG’~Configuration~Review previously run queries
Template Editor~Modify report templates~DO ffadmin.exe WITH ‘TEMPLATE EDITOR’~Templates~Modify report templates
FFConfig Editor~FFConfig Editor~DO utlmgr_run WITH ‘FFCONFIG’~Configuration~Add or maintain code for custom processing at key Foxfire! events
Site Information~Site Information~DO utlmgr_run WITH ‘SITE INFORMATION’~Distribution~Describes the site where Foxfire! will run


3. Add new options to the main Request manager menu and toolbar

Foxfire! v. 576 and above all have a single custom menu option that appears on each menu in the request manager as well as the toolbar. You can control the display and action with each option by modifying an XML file named plugins.config.

The best way of dealing with this file is to use VFP and call XMLTOCURSOR which creates a usable table for this file and then use CURSORTOXML to get it all back.

However, this structure is pretty easy to work with on its own. Here’s a sample:

System Tools...
Configure Custom Options

It has 6 elements:
COBJ – an item that points to which custom option to look at.
Available objects are:
RMBUTTON – a button that appears on the toolbar
FILECUSTOM – custom menu option on the File Menu
VIEWCUSTOM – custom menu option on the View Menu
TOOLSCUSTOM – custom menu option on the Tools Menu
HELPCUSTOM – custom menu option on the Help Menu

LVISIBLE – determines if the option is visible or not
CCAPTION – the caption that appears in the menu
CMETHOD – the function to execute
CMESSAGE – the message that appears in the status bar
CIMAGE – points to the bitmap image

In the sample above, a new option named System Tools is added to the Tools menu. When the option is selected, it calls the FFS.PRG program. If you want to call a separate executable, you can simply say DO xxx.EXE.


If you plan on simply renaming ffadmin.exe to another name and then calling it, you need to have a calling program that sets the FFADMIN.VCX class library. In the above example, the code would be:


Using these three approaches together lets you effectively rewrite the entire System Administration menu.