Let the platform do the work

Extensions

Overview

The extension framework, defined in ./ModuleInstall/extensions.php, provides the capability to modify Sugar metadata such as vardefs and layouts in a safe way that supports installing, uninstalling, enabling, and disabling without interfering with other customizations.

Application extensions are stored under ./custom/Extension/application/Ext/ and module extensions are under ./custom/Extension/modules/<module>/Ext/. The files in each of these directories are aggregated into a single file with a predefined name for the system to use. An example of this is the vardefs extension. The vardef extension directory for Accounts is located in ./custom/Extension/modules/Accounts/Ext/Vardefs/. When a module is installed, uninstalled, enabled, or disabled, the files contained in this directory are merged into ./custom/modules/Accounts/Ext/Vardefs/vardefs.ext.php. A Quick Repair & Rebuild will also cause the files to merge.

The core extension mappings are listed in the Topics section at the bottom of this page.

Extensions Properties

Each extension contains the following properties:

Property Description
Extension Scope
  • All : Extension can be applied to the ./custom/application/ or ./custom/<module>/ directory
  • Application : Extension can only be applied to the ./custom/application/ directory
  • Module : Extension can only be applied to the ./custom/<module>/ directory
Definition Variable The variable that Sugar for utilizing the extension definition. If defined, this variable must be set with the appropriate definition properties.
Extension Directory

The directory that the extension compiles files from

  • If the customization is for the application, the extension file should be placed in ./custom/Extension/application/Ext/<extension_directory>/
  • If the customization is for a module, the extension file should be placed in ./custom/Extension/modules/<module>/Ext/<extension_directory>/
Compiled Extension File

The name of the compiled extension file

  • If the extension is for the application, the compiled file will be located in ./custom/application/Ext/<extension>/<extension>.ext.php
  • If the extension is for a module, the compiled file will be located in ./custom/modules/<module>/Ext/<extension>/<extension>.ext.php
Manifest Installdef The index of the $installdef in the manifest file for module loadable packages.

Topics

The ActionFileMap extension maps actions to files, which helps you map a file to a view outside of ./custom/modules/<module>/views/view.<name>.php. This page is only applicable to modules running in backward compatibility mode.
The ActionReMap extension maps new actions to existing actions. This extension is only applicable to modules running in backward compatibility mode.
The ActionViewMap extension maps additional actions for a module.
The Administration extension adds new panels to Sugar's Administration page.
Application Scheduler extensions add custom functions that can be used by scheduler jobs.
The Console extension adds custom CLI commands to Sugar. More information on creating custom commands can be found in the CLI documentation.
Dependencies create dependent actions for fields and forms that can leverage more complicated logic.
The EntryPointRegistry extension maps additional entry points to the system. Please note that entry points will soon be deprecated. Developers should move custom logic to endpoints. For more information, please refer to the Entry Points page.
This extension allows for developers to create custom extensions within the framework. Custom extensions are used alongside the extensions found in ./ModuleInstaller/extensions.php.
The FileAccessControlMap extension restricts specific view actions from users of the system.
The Modules extension maps additional modules in the system, typically when Module Builder deploys a module.
The JSGroupings extension allows for additional JavaScript grouping files to be created or added to existing groupings within the system.
The Language extension adds or overrides language strings.
The Layoutdefs extension adds or overrides subpanel definitions.
The LogicHooks extension adds actions to specific events such as, for example, before saving a bean. For more information on logic hooks in Sugar, please refer to the Logic Hooks documentation.
The Modules extension maps additional modules in the system, typically when Module Builder deploys a module.
The Platforms extension adds allowed REST API platforms when restricting custom platforms through the use of the disable_unknown_platforms configuration setting.
The ScheduledTasks extension adds custom functions that can be used by scheduler jobs. For more information about schedulers in Sugar, please refer to the Schedulers documentation.
The Sidecar extension installs metadata files to their appropriate directories.
The TinyMCE extension affects the TinyMCE WYSIWYG editor's configuration for backward compatible modules such as PDF Manager and Campaign Email Templates.
The UserPage extension adds sections to the User Management view.
The Utils extension adds functions to the global utility function list.
The Vardefs extension adds or overrides system vardefs, which provide the Sugar application with information about SugarBeans.
The WirelessLayoutdefs extension adds additional subpanels to wireless views. This extension is only applicable to modules running in backward compatibility mode.
The WirelessModuleRegistry extension adds modules to the available modules for mobile.