$modules->isConfigurable() method

Is the given module interactively configurable?

This method can be used to simply determine if a module is configurable (yes or no), or more specifically how it is configurable.

Return value details

If module is configurable via external configuration file:

  • Returns string of full path/filename to ModuleName.config.php file

If module is configurable because it implements a configurable module interface:

  • Returns boolean true if module is configurable via the static getModuleConfigInputfields() method. This particular method is compatible with all past versions of ProcessWire.
  • Returns integer 2 if module is configurable via the non-static getModuleConfigInputfields() and requires no arguments.
  • Returns integer 3 if module is configurable via the non-static getModuleConfigInputfields() and requires $data array.
  • Returns integer 4 if module is configurable via the non-static getModuleConfigInputfields() and requires InputfieldWrapper argument.
  • Returns integer 19 if module is configurable via non-static getModuleConfigArray() method.
  • Returns integer 20 if module is configurable via static getModuleConfigArray() method.

If module is not configurable:

  • Returns boolean false if not configurable

This method is named isConfigurableModule() in ProcessWire versions prior to to 3.0.16.

Available since version 3.0.16.

Examples

// Determine IF a module is configurable
if($modules->isConfigurable('HelloWorld')) {
  // Module is configurable
} else {
  // Module is NOT configurable
}
// Determine HOW a module is configurable
$configurable = $module->isConfigurable('HelloWorld');
if($configurable === true) {
  // configurable in a way compatible with all past versions of ProcessWire
} else if(is_string($configurable)) {
  // configurable via an external configuration file
  // file is identifed in $configurable variable
} else if(is_int($configurable)) {
  // configurable via a method in the class
  // the $configurable variable contains a number with specifics
} else {
  // module is NOT configurable
}

Usage

// basic usage
$bool = $modules->isConfigurable($class);

// usage with all arguments
$bool = $modules->isConfigurable($class, bool $useCache = true);

Arguments

NameType(s)Description
classModule, string

Module name

useCache (optional)bool

Use caching? This accepts a few options:

  • Specify boolean true to allow use of cache when available (default behavior).
  • Specify boolean false to disable retrieval of this property from getModuleInfo (forces a new check).
  • Specify string interface to check only if module implements ConfigurableModule interface.
  • Specify string file to check only if module has a separate configuration class/file.

Return value

bool string int

See details about return values in method description.


$modules methods and properties

API reference based on ProcessWire core version 3.0.244

Latest news

  • ProcessWire Weekly #558
    In the 558th issue of ProcessWire Weekly we'll check out the blog post that introduces ProcessWire 3.0.244, share some recent ProcessWire highlights, and more. Read on!
    Weekly.pw / 18 January 2025
  • ProcessWire 3.0.244 new main/master version
    ProcessWire 3.0.244 is our newest main/master/stable version. It's been more than a year in the making and is packed with tons of new features, issue fixes, optimizations and more. This post covers all the details.
    Blog / 18 January 2025
  • Subscribe to weekly ProcessWire news

“We were really happy to build our new portfolio website on ProcessWire! We wanted something that gave us plenty of control on the back-end, without any bloat on the front end - just a nice, easy to access API for all our content that left us free to design and build however we liked.” —Castus, web design agency in Sheffield, UK