/** * Fire collector for modules. * * @since 1.0.0 * @return bool */ private function run_collector() { if (!is_array($this->settings['modules']) || empty($this->settings['modules'])) { return false; } // Cherry_Toolkit module should be loaded by default. if (!isset($this->settings['modules']['cherry-toolkit'])) { $this->settings['modules']['cherry-toolkit'] = array('autoload' => true); } foreach ($this->settings['modules'] as $module => $settings) { $priority = $this->get_module_priority($module); $path = $this->get_module_path($module); if (!array_key_exists($module, self::$all_modules)) { self::$all_modules[$module] = array($priority => $path); } else { $old_priority = array_keys(self::$all_modules[$module]); if (!is_array($old_priority) || !isset($old_priority[0])) { continue; } $compare = version_compare($old_priority[0], $priority, '<'); if ($compare) { continue; } self::$all_modules[$module] = array($priority => $path); } } /** * Filter a holder for all modules. * * @since 1.1.0 * @var array */ self::$all_modules = apply_filters('cherry_core_all_modules', self::$all_modules, $this); }