IgnitionDeck Documentation

IgnitionDeck Module API

Introduction to the IgnitionDeck Module API

IgnitionDeck Modules are drop-in code libraries that integrate with the IgnitionDeck Framework (IDF) and allow you to easily enable or disable additional functionality for your website. In most situations, these modules modify or enhance functionality that is bundled with one of the three major IgnitionDeck plugins (Framework, Commerce, Crowdfunding).

The IgnitionDeck Module API enables the addition of 3rd party libraries that can be managed via the IgnitionDeck->Modules menu, giving users complete control over the features they enable or disable, and is the only supported method for adding/modifying IgnitionDeck features.

The IgnitionDeck Module API is new, and therefore parameters are limited.  However, our development team is actively working to improve base functionality, including the addition of a 3rd party module library, and the ability to charge fees for module activation.

IgnitionDeck Module Structure

Custom modules should be placed in the /classes/custom-modules folder inside the IDF and IgnitionDeck Commerce (IDC) plugins. It is recommended that commerce related modules be installed in IDC, and general modules installed in IDF. You may create this folder if it does not exist.

When installed, a module should have the following structure:

/classes/custom-modules/custom_module/[files_here]

Module parameters are defined via a module_info.json file located in the module’s root directory:

/classes/custom-modules/custom_module/module_info.json

Module logos are located in the same directory:

/classes/custom-modules/custom_module/thumbnail.png

Modules must also include a primary class file that uses the same name format as the root directory:

/classes/custom-modules/custom_module/class-custom_module.php

As long as these three files are properly placed, you may use any folder structure you wish inside the module’s root directory.

Building module_info.json

This file currently accepts the following parameters:

title (required): The name of the module as listed in the module directory.

short_desc (required): A short description of the module’s feature set displayed in the module directory under logo and title.

doclink (optional): A link to the module’s documentation page.

status (required): Set to “live” when module is ready to be published.

type (required): “module” is the only allowed argument.

requires (optional):  Leave empty if the module does not require an IgnitionDeck license. Set to idc if Echelon is required. Set to ide if Enterprise is required.

Using the IgnitionDeck Helix module as an example, a final module_info.json file might look like:

Module Activation & Autoload

Modules will display in the IgnitionDeck->Modules menu as soon as this file is built and the module->status is set to live. Once listed, modules will automatically receive a button to enable activation/deactivation. Once activated, modules are detected and their class file is loaded automatically. Use this file to load any additional files your module might require.

Module Updates

The IgnitionDeck Module API does not yet support versions or automatic updates. Therefore, it is recommended that modules are updated manually via FTP.