Usage

The plugin registers a link within the Tools menu called "Extension Generator".

Table of Contents

About the Extension Generator

The Extension Generator is a plugin that allows users to automatically generates basic files and methods for a Blesta extension using relatively simple web forms.

Tie-Ins*

WidgetsNav LinksClient CardsAutomation TasksEmail TemplatesACL PermissionsSearchEventsService Management

NONE

YES

NONE

NONE

NONE

NONE

NONE

NONE

NONE

* Plugins are powerful and are not limited to the tie-ins listed above, these are just some of the most common

max_input_vars

You may need to increase your PHP's max_input_vars value if you are using the Extension Generator with a significant number of fields.

Installing the Extension Generator

  1. Visit [Settings] > [Company] > [Plugins] > Available.
  2. Click the "Install" button within the Extension Generator plugin listing.

Usage

The plugin registers a link within the Tools menu called "Extension Generator".


Creating an extension

Creating an extension with the generator is relatively simple.  Click the "+" icon and follow the form.  There are many tooltips and "More Info" links to help you understand the various fields. There is also a nifty node based progress bar to keep track of your progress and allow you to just to different steps.  The primary barrier to creating an extension using the generator is understanding the various terms relating to each extension type.  Below is a glossary for each extension type to help you understand the different portions of each form.

Module Glossary

Basic Info

TermDescription
AuthorAn author is typically considered to be the individual/company who created the module and/or the individual/company who funded the module.  Their names will be shown in the module listing as well as at the top of a few files in the module code.
Module GroupA group of module rows.  This can be assigned to a package to allow service to be distributed across multiple module rows.
Module RowA module row typical contains information for connection to a remote server.  These are assigned to packages and are used, among other things, to provision services.

Module Fields

TermDescription
Module Row FieldsThese are the form fields displayed when an admin is adding or editing a module row.
Name Key (Module Row)For module rows, if a field is selected as the "name key" then that is the field the will be shown in the module row list when managing the module, when adding/editing a package, and in various other locations.
Package FieldsThese are the form fields pulled in from the module and displayed when an admin is adding or editing a package.  These are never seen by clients.
Name Key (Package)This acts mostly as a backup for the service name field.  If no service field is labeled as a name key then this field may be used to label services.
Service FieldsThese are the form fields pulled in from the module and displayed when an admin or client is adding or editing a service.  It is possible to modify these fields to limit where the can be seen (add or edit) and who can see them (admin or client).
Name Key (Service)For services, if a field is selected as the "name key" it will be used to label services.

Additional Features

TermDescription
Service Management TabThese create additional pages attached to a service.  They can be seen by admins and/or client and can do essentially whatever a developer wants.  Examples of common uses are: initiating a password reset, starting/stopping/suspending an attached server, displaying attached server information.
Cron TaskThese are blocks of code that are automatically run by a background process on the Blesta server.  Each runs either at a certain time during the day or after a certain time interval since the last run (addition time restrictions such as running on the first day of the month need to be added internally in the code).  These can do essentially whatever a developer wants.  Some examples are: syncing services with their expiration on a remote server, sending an email report, notifying a user of a stopped server.
Optional FunctionThis is an actual method in the code that is not required for a module to function, but may be helpful depending on your use case.

Confirmation

TermDescription
Blesta Modules DirectoryThis specifically refers to the /components/modules directory in your Blesta install
Blesta Uploads DirectoryThis is defined by the system settings under Settings > System > General

Plugin Glossary

Basic Info

TermDescription
AuthorAn author is typically considered to be the individual/company who created the plugin and/or the individual/company who funded the plugin.  Their names will be shown in the plugin listing as well as at the top of a few files in the plugin code.

Database Info

TermDescription
Database TablePlugins are powerful and may define database tables for any number of reasons.

Core Integrations

TermDescription
Action"Actions" represent plugin pages that are accessible through the core interface. This includes navigation links in the admin and client areas, widgets in the admin and client area, and links on the admin client profile sidebar.  There is a predefined list of possible locations for an Action to appear.
EventThis is the "hook" or "trigger" system in Blesta.  An event is registered and triggered by either the core or a plugin.  See a full list of core events on the Event Handlers page.
Event HandlerPlugins register Event Handlers to be notified whenever an event is triggered and execute a block of code.
Client CardThese are summary boxes displayed on a client's profile in the admin or client area.  They typically show basic statistics in a visually appealing way and can link to other pages.

Additional Features

TermDescription
Service Management TabThese create additional pages attached to a service.  They can be seen by admins and/or client and can do essentially whatever a developer wants.  The only current example of this feature being used by a plugin is here https://github.com/blesta/plugin-ip_unblocker
Cron TaskThese are blocks of code that are automatically run by a background process on the Blesta server.  Each runs either at a certain time during the day or after a certain time interval since the last run (addition time restrictions such as running on the first day of the month need to be added internally in the code).  These can do essentially whatever a developer wants.  Some examples are: sending an email report, deleting old and neglected support tickets, automatically approving/provisioning paid orders.
Optional FunctionThis is an actual method in the code that is not required for a plugin to function, but may be helpful depending on your use case.

Confirmation

TermDescription
Blesta Plugins DirectoryThis specifically refers to the /plugins directory in your Blesta install
Blesta Uploads DirectoryThis is defined by the system settings under Settings > System > General

Merchant Gateway Glossary

Basic Info

TermDescription
AuthorAn author is typically considered to be the individual/company who created the gateway and/or the individual/company who funded the gateway.  Their names will be shown in the gateway listing as well as at the top of a few files in the gateway code.

Configuration Fields

TermDescription
Configuration FieldTypically these are fields defining how to communication with the gateway api (e.g. Use SSL, API Key, API Username, etc.)

Supported Features

TermDescription
Supported FeatureMerchant gateways may support one or more ways of paying or recording payment information.  Each "supported feature" adds unique functionality and corresponds to a PHP interface by which Blesta can recognize how to handle the gateway.

Confirmation

TermDescription
Blesta Merchant Gateway DirectoryThis specifically refers to the /components/gateways/merchant directory in your Blesta install
Blesta Uploads DirectoryThis is defined by the system settings under Settings > System > General

Non-Merchant Gateway Glossary

Basic Info

TermDescription
AuthorAn author is typically considered to be the individual/company who created the gateway and/or the individual/company who funded the gateway.  Their names will be shown in the gateway listing as well as at the top of a few files in the gateway code.

Configuration Fields

TermDescription
Configuration FieldTypically these are fields defining how to communication with the gateway api (e.g. Use SSL, API Key, API Username, etc.)

Additional Features

TermDescription
Optional FunctionThis is an actual method in the code that is not required for a gateway to function, but may be helpful depending on your use case.

Confirmation

TermDescription
Blesta Non-Merchant Gateway DirectoryThis specifically refers to the /components/gateways/nonmerchant directory in your Blesta install
Blesta Uploads DirectoryThis is defined by the system settings under Settings > System > General



  • No labels