/** * load all modules for first */ public static function load_all_modules() { static $trigger = false; if (!$trigger) { $trigger = true; //run once time $modules = hw_get_modules(); foreach ($modules as $module) { HW_HOANGWEB::load_module($module[0]); usleep(500); } } }
/** * active module by slug * @param $module one or more module data * @param int|string $pos */ function hw_activate_modules($module, $pos = '') { static $actived_modules; $modules = array(); if (!$actived_modules) { $actived_modules = hw_get_modules(true); } $count = count($actived_modules); if (isset($module[0]) && !is_array($module[0])) { $modules[] = $module; } else { $modules = $module; } foreach ($modules as $_module) { if (!isset($actived_modules[$_module[0]]) && HW_TGM_Module_Activation::get_modules($_module[0])) { //get register module meta data $info = HW_TGM_Module_Activation::get_modules($_module[0]); if (empty($info['position'])) { $info['position'] = count($actived_modules); } //$actived_modules[$_module[0]] = $_module; $actived_modules = hwArray::add_item_keyval($actived_modules, $_module[0], $_module, $info['position']); //load new module file for initialize HW_HOANGWEB::load_module($_module[0]); //activation hook for module $activation_hooks = HW_HOANGWEB::register_activation_hook(realpath(HW_HOANGWEB_PLUGINS . '/' . $_module[0])); if (is_array($activation_hooks)) { foreach ($activation_hooks as $activation_hook) { if (is_callable($activation_hook)) { call_user_func($activation_hook); usleep(200); //sleep in miliseconds } } } } } //save option to db if ($count !== count($actived_modules)) { update_option('hw_install_modules', $actived_modules); HW_Cache::reset_wp_menus_caches(); return true; } return false; }