From 07007b7a01bf68bbe96a980862c0fcdd20eeba52 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Thu, 9 Oct 2014 22:50:20 -0400 Subject: [PATCH] Fix api getActions to also load generic actions --- Civi/API/Provider/MagicFunctionProvider.php | 30 +++++++++++---------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/Civi/API/Provider/MagicFunctionProvider.php b/Civi/API/Provider/MagicFunctionProvider.php index f5d817a86d..74a38dbcac 100644 --- a/Civi/API/Provider/MagicFunctionProvider.php +++ b/Civi/API/Provider/MagicFunctionProvider.php @@ -257,22 +257,24 @@ class MagicFunctionProvider implements EventSubscriberInterface, ProviderInterfa $loaded_files = array(); // array($relativeFilePath => TRUE) $include_dirs = array_unique(explode(PATH_SEPARATOR, get_include_path())); foreach ($include_dirs as $include_dir) { - $action_dir = implode(DIRECTORY_SEPARATOR, array($include_dir, 'api', "v${version}", $camelName)); - if (!is_dir($action_dir)) { - continue; - } - - $iterator = new \DirectoryIterator($action_dir); - foreach ($iterator as $fileinfo) { - $file = $fileinfo->getFilename(); - if (array_key_exists($file, $loaded_files)) { - continue; // action provided by an earlier item on include_path + foreach (array($camelName, 'Generic') as $name) { + $action_dir = implode(DIRECTORY_SEPARATOR, array($include_dir, 'api', "v${version}", $name)); + if (!is_dir($action_dir)) { + continue; } - $parts = explode(".", $file); - if (end($parts) == "php" && !preg_match('/Tests?\.php$/', $file)) { - require_once $action_dir . DIRECTORY_SEPARATOR . $file; - $loaded_files[$file] = TRUE; + $iterator = new \DirectoryIterator($action_dir); + foreach ($iterator as $fileinfo) { + $file = $fileinfo->getFilename(); + if (array_key_exists($file, $loaded_files)) { + continue; // action provided by an earlier item on include_path + } + + $parts = explode(".", $file); + if (end($parts) == "php" && !preg_match('/Tests?\.php$/', $file)) { + require_once $action_dir . DIRECTORY_SEPARATOR . $file; + $loaded_files[$file] = TRUE; + } } } } -- 2.25.1