Every time I'm adding a new item to my v1.5.0 admin, I search the forums and can never find the post (I know it's there) that identifies how to get your new tool added to the admin menu ... so I'm noting the process here.

Let's say that you have a new tool named new_tool.php that you want to plug into the Tools menu. Here's the file-system structure you should wind up with:

    Contains the code that implements your new tool.

    Contains the filename definition for your new tool, e.g. define('FILENAME_NEW_TOOL', 'new_tool.php');

    Contains the menu entry text definition for your new tool, e.g. define('BOX_TOOLS_NEW_TOOL', 'New Tool');

    Contains the language-specific defines for your new tool, filename must be the same name as to tool itself.
The following file is where your tool is actually added to the admin Tools menu.

if (!defined('IS_ADMIN_FLAG')) {
    die('Illegal Access');

// If the installation supports admin-page registration (i.e. v1.5.0 and later), then
// register the New Tools tool into the admin menu structure.
if (function_exists('zen_register_admin_page')) {
  if (!zen_page_key_exists('toolsNewTool')) {
    zen_register_admin_page('toolsNewTool', 'BOX_TOOLS_NEW_TOOL', 'FILENAME_NEW_TOOL','' , 'tools', 'Y', 20);
  • The value toolsNewTool is a (hopefully) unique value that identifies your new tool.
  • The values BOX_TOOLS_NEW_TOOL and FILENAME_NEW_TOOL are defined within the other files within your toolset.
  • The fourth parameter ('') has any parameters that your tool might require. (Rarely used.)
  • The fifth parameter ('tools' in the example) identifies which of the high-level menu items your tool "attaches" to, one of: configuration, catalog, modules, customers, taxes, localization, reports, tools, gv, access, or extras.
  • The sixth parameter ('Y') identifies whether ('Y') or not ('N') to display the page on the admin menu.
  • The seventh parameter (20) is the sort order for the page, i.e. where it lives on the drop-down menu in relation to the sort order of others.