/** * get active module by installer * @param $module * @param $default_module if specific module not exists, get default other module */ private function get_active_module_from_installer($module = '', $default_module = 'hw-importer') { if (!$module) { $module = hw__req('module'); } if (!count(HW_TGM_Module_Activation::get_register_modules(array('active' => 1, 'slug' => $module)))) { $module = $default_module; } if ($module) { return HW_Module_Settings_page::get_modules($module); } }
/** * desploy modules with positions */ private function desploy_modules_position() { if (is_admin()) { return; } $modules_positions = $this->get_field_value('modules_position'); if (is_array($modules_positions)) { foreach ($modules_positions as $module => $item) { //if($item['condition'] == 0) continue; $match = 1; //check condition before module can display $dynamic_settings = HW_Condition::get_active_conditions_settings(); $condition = $item['condition']; //condition id if ($condition) { if (!isset($dynamic_settings[$condition])) { continue; } $setting = array($condition => $dynamic_settings[$condition]); $setting_conditions = HW__Template_Condition::parse_template_conditions($setting); #_print($setting_conditions); foreach ($setting_conditions as $pages_condition) { //and, or condition if (isset($pages_condition) && is_array($pages_condition)) { //get template alternate with AND relation foreach ($pages_condition as $temp => $meet_condition) { if ($meet_condition['result']) { $match = 1; //break; //first occurence } else { $match = 0; } } } } } if ($match) { //add action for module position $module_inst = HW_Module_Settings_page::get_modules($module); if (!empty($module_inst)) { HW_Module_Positions::add_position_hook($item['position'], $module_inst->get_module_content_cb()); } } } } }
/** * setup module data * @param $module */ protected function setup_module_data($module) { $module_inst = HW_Module_Settings_page::get_modules($module); #(new HW_Module())->get_config(); if (!$module_inst) { //module not found $this->command_log(sprintf('Module %s chưa được kích hoạt.', $module)); return; } #$module_config = $module_inst->get_config(); $wxr_files = $module_inst->get_module_wxr_files(); if (!isset($wxr_files['export'])) { return; } //config file not exists $file = $wxr_files['export']; $module_inst->setup_demo($file); $this->command_log('Cài đặt module ' . $module . '.'); }
/** * get current module for this cli */ protected function get_current_module() { if (empty($this->module)) { $class = get_called_class(); $reflector = new ReflectionClass($class); $file = $reflector->getFileName(); $split = explode(DIRECTORY_SEPARATOR, $file); $file = end($split); preg_match('#^class-cli-(.+)\\.php$#', trim($file), $arr); if (count($arr) > 1) { $module = $arr[1]; $this->module = HW_Module_Settings_page::get_modules($module); } } return $this->module; }
/** * get current module info * @param $item * @return array */ public function get_module_info($item = '') { static $data; $module_slug = preg_replace('#.+?\\/#', '', str_replace('\\', '/', trim($this->_apply_plugin, '\\/'))); if (!isset($data[$module_slug])) { $module = HW_Module_Settings_page::get_modules($module_slug); $data[$module_slug] = array('slug' => $module_slug); if ($module) { $data[$module_slug]['name'] = $module->get_module_info('name'); $data[$module_slug]['object'] = $module; } } return $item ? isset($data[$module_slug][$item]) ? $data[$module_slug][$item] : '' : $data[$module_slug]; }
/** * get module instance by slug or class name * @param $name * @param bool $actived * @return array|bool */ public static function get_module_by_name($name, $actived = false) { $module = HW_Module_Settings_page::get_modules($name); if ($actived == false || $actived && self::is_active($name)) { return $module; } return false; }