? 911362-8_D6_plugins_static.patch ? 911362-8_D7_plugins_static.patch Index: includes/export.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/ctools/includes/export.inc,v retrieving revision 1.19.2.23 diff -u -p -r1.19.2.23 export.inc --- includes/export.inc 12 Aug 2010 20:48:31 -0000 1.19.2.23 +++ includes/export.inc 27 Sep 2010 20:53:49 -0000 @@ -468,11 +468,13 @@ function ctools_export_load_object($tabl * ctools_export_load_object() will be reset. */ function ctools_export_load_object_reset($table = NULL) { + // Reset plugin cache to make sure new include files are picked up. + ctools_include('plugins'); + ctools_get_plugins_reset(); if (empty($table)) { ctools_static_reset('ctools_export_load_object'); ctools_static_reset('ctools_export_load_object_all'); ctools_static_reset('_ctools_export_get_defaults'); - ctools_static_reset('ctools_plugin_api_info'); } else { $cache = &ctools_static('ctools_export_load_object'); @@ -481,7 +483,6 @@ function ctools_export_load_object_reset unset($cache[$table]); unset($cached_database[$table]); unset($cached_defaults[$table]); - ctools_static_reset('ctools_plugin_api_info'); } } Index: includes/plugins.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/ctools/includes/plugins.inc,v retrieving revision 1.18.2.30 diff -u -p -r1.18.2.30 plugins.inc --- includes/plugins.inc 25 Aug 2010 20:22:22 -0000 1.18.2.30 +++ includes/plugins.inc 27 Sep 2010 20:53:49 -0000 @@ -129,18 +129,14 @@ function ctools_plugin_api_include($owne static $already_done = array(); $info = ctools_plugin_api_info($owner, $api, $minimum_version, $current_version); - if (!isset($already_done[$owner][$api])) { - foreach ($info as $module => $plugin_info) { - if (!isset($plugin_info['file'])) { - $plugin_info['file'] = "$module.$api.inc"; - } - if (file_exists("./$plugin_info[path]/$plugin_info[file]")) { - $plugin_info[$module]['included'] = TRUE; - require_once "./$plugin_info[path]/$plugin_info[file]"; + foreach ($info as $module => $plugin_info) { + if (!isset($already_done[$owner][$api][$module])) { + $file = isset($plugin_info['file']) ? $plugin_info['file'] : "$module.$api.inc"; + if (file_exists("./$plugin_info[path]/$file")) { + require_once "./$plugin_info[path]/$file"; } - $info[$module] = $plugin_info; + $already_done[$owner][$api][$module] = TRUE; } - $already_done[$owner][$api] = TRUE; } return $info; @@ -276,6 +272,14 @@ function ctools_get_plugins($module, $ty } /** + * Reset all static caches that affect the result of ctools_get_plugins(). + */ +function ctools_get_plugins_reset() { + ctools_static_reset('ctools_plugin_load_includes'); + ctools_static_reset('ctools_plugin_api_info'); +} + +/** * Load plugins from a directory. * * @param $info