/**
  * 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);
         }
     }
 }
Exemplo n.º 2
0
/**
 * 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;
}