You are here

public static function RulesAbstractPlugin::includeFiles in Rules 7.2

Makes sure all supported destinations are included.

2 calls to RulesAbstractPlugin::includeFiles()
RulesAbstractPlugin::rebuildCache in includes/rules.core.inc
Add in the data provided by the info hooks to the cache.
rules_discover_plugins in ./rules.module
Discover plugin implementations.

File

includes/rules.core.inc, line 1816
Rules base classes and interfaces needed for any rule evaluation.

Class

RulesAbstractPlugin
Defines a common base class for so-called "Abstract Plugins" like actions.

Code

public static function includeFiles() {
  static $included;
  if (!isset($included)) {
    foreach (module_implements('rules_file_info') as $module) {

      // rules.inc are already included thanks to the rules_hook_info() group.
      foreach (self::getIncludeFiles($module, FALSE) as $name) {
        module_load_include('inc', $module, $name);
      }
    }
    $dirs = array();
    foreach (module_implements('rules_directory') as $module) {

      // Include all files once, so the discovery can find them.
      $result = module_invoke($module, 'rules_directory');
      if (!is_array($result)) {
        $result = array(
          $module => $result,
        );
      }
      $dirs += $result;
    }
    foreach ($dirs as $module => $directory) {
      $module_path = drupal_get_path('module', $module);
      foreach (array(
        'inc',
        'php',
      ) as $extension) {
        foreach (glob("{$module_path}/{$directory}/*.{$extension}") as $filename) {
          include_once $filename;
        }
      }
    }
    $included = TRUE;
  }
}