For Developers

Beaver Brewer Module Compatibility Guidelines

Basic Compatibility

As with any Beaver Builder module, your module should be a folder containing a PHP file that defines your module class. Both the containing folder and the .php file should have the same name, made up of lowercase letters and dashes only (e.g. "my-module"). This name should be unique to your module, and must not conflict with any built-in Beaver Builder modules.

You may also include other folders and files inside your module, but when developing for Beaver Brewer, you should not wrap your module inside a parent plugin. Wherever you would normally use a (namespaced) constant to refer to the modules directory path or the modules directory url, use the BREWER_MODULES_DIR and the BREWER_MODULES_URL constants, respectively. You do not need to define these; they are already defined in Beaver Brewer.

Beaver Builder's Custom Module Documentation is a useful resource for developing your own modules, but keep in mind that this guide assumes you will be wrapping your module inside a plugin. If you choose to follow it, you should ignore the parts that mention creating a plugin or editing plugin files.

Full Compatibility

In order for your module to take full advantage of Beaver Brewer's features (such as automatic updates), you will also need to include a module.config file with your module. This file includes important information about your plugin:

  •  A clean, human-readable module name
  •  A module version number
  •  An author name
  •  An author URI (optional)
  •  A short (140 character or less) description of the module
  •  A remote configuration file (module.config) with which to compare versions (for automatic updates). The remote file should always contain the most recent version number of your module.
  •  A URL to download the current module ZIP archive
  •  A URL for more information about the module (optional)

That's it! Your module is now fully compatible with Beaver Brewer. Time to submit it to the Beaver Brewer module directory!

A Note About Automatic Updates

As noted above, in order to enable automatic updates, you must specify the URL to a remote module.config file (which should always contain the most recent version number of your module), as well as a URL to download the ZIP archive of the current version of your module. This may sound confusing, but it allows Beaver Brewer to check and see if a more recent version of your module has been released, and if so, automatically download the release and update your module accordingly).

The easiest way to achieve this compatibility is to host your module code on GitHub or Bitbucket (we highly recommend using git for version control, anyway). You then just need to obtain the proper URLs for your module.config file and download ZIP, respectively:

For GitHub Users: 

Make sure your repository is public and use the following URL patterns:

Module.config
https://raw.githubusercontent.com/{username}/{reponame}/master/module.config

Download ZIP
https://codeload.github.com/{username}/{reponame}/zip/master

For Bitbucket Users: 

Make sure your repository is public and use the following URL patterns:

Module.config
https://api.bitbucket.org/1.0/repositories/{username}/{reponame}/raw/master/module.config

Download ZIP
https://bitbucket.org/{username}/{reponame}/get/master.zip